如何在android xml可绘制文件中定义一个圆形状?
我有一些问题findAndroid的XML的形状定义的文档。 我想在XML文件中定义一个简单的填充了纯色的圆圈,将其包含到我的布局文件中。
可悲的是,android.com上的文档并不包含Shape类的XML属性。 我想我应该使用ArcShape绘制一个圆,但没有解释如何设置圆弧所需的大小,颜色或angular度。
这在Android中是一个简单的圈子。
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#666666"/> <size android:width="120dp" android:height="120dp"/> </shape>
将其设置为您的视图背景
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <stroke android:width="1dp" android:color="#78d9ff"/> </shape>
对于实心圆使用:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#48b3ff"/> </shape>
坚实与冲程:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#199fff"/> <stroke android:width="2dp" android:color="#444444"/> </shape>
注意 :要使oval
形状显示为圆形,在这些示例中,您认为使用这些形状作为其背景的视图应该是正方形,或者必须将形状标记的height
和width
属性设置为相等的值。
代码为简单的圈子
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#9F2200"/> <stroke android:width="2dp" android:color="#fff" /> <size android:width="80dp" android:height="80dp"/> </shape>
查看Android SDK示例。 ApiDemos项目中有几个例子:
/ ApiDemos / RES /抽拉/
- black_box.xml
- shape_5.xml
- 等等
对于具有渐变填充的圆形,它会看起来像这样:
<?xml version =“1.0”encoding =“utf-8”?> <shape xmlns:android =“http://schemas.android.com/apk/res/android”android:shape =“oval”> <gradient android:startColor =“#FFFF0000”android:endColor =“#80FF00FF” 机器人:angular= “270”/> </形状>
用这个
<?xml version="1.0" encoding="utf-8"?> <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="200dp" android:height="200dp" android:viewportHeight="64" android:viewportWidth="64"> <path android:fillColor="#ff00ff" android:pathData="M22,32 A10,10 0 1,1 42,32 A10,10 0 1,1 22,32 Z" /> </vector>
这里有一个简单的用于前置材质的circle_background.xml:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <shape android:shape="oval"> <solid android:color="@color/color_accent_dark" /> </shape> </item> <item> <shape android:shape="oval"> <solid android:color="@color/color_accent" /> </shape> </item> </selector>
您可以在button的布局定义中使用属性'android:background="@drawable/circle_background"
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <!-- fill color --> <solid android:color="@color/white" /> <!-- radius --> <stroke android:width="1dp" android:color="@color/white" /> <!-- corners --> <corners android:bottomLeftRadius="2dp" android:bottomRightRadius="2dp" android:topLeftRadius="2dp" android:topRightRadius="2dp" /> </shape>
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <stroke android:width="10dp" android:color="@color/white"/> <gradient android:startColor="@color/red" android:centerColor="@color/red" android:endColor="@color/red" android:angle="270"/> <size android:width="250dp" android:height="250dp"/> </shape>
只是使用
ShapeDrawable circle = new ShapeDrawable( new OvalShape() );