我试图在中间插入一个带十字(加号)的圆圈,如下所示:
我一直在阅读的大部分教程在图层列表中都没有任何帮助。到目前为止,这是我的代码:
<item android:top="0dp" android:left="0dp" android:bottom="0dp" android:right="0dp">
<shape android:shape="line">
<stroke android:width="10dp" />
<solid android:color="@color/bus_red" />
</shape>
</item>
<item android:top="0dp" android:left="0dp" android:bottom="0dp" android:right="0dp">
<rotate
android:fromDegrees="0"
android:toDegrees="90" >
<shape android:shape="line">
<stroke android:width="10dp" />
<solid android:color="@color/bus_red" />
</shape>
</rotate>
</item>
<item android:top="0dp" android:left="0dp" android:bottom="0dp" android:right="0dp">
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:innerRadius="20dp"
android:thickness="5dp"
android:useLevel="false">
<solid android:color="@color/bus_red" />
</shape>
</item>
正如你所看到的,我有一个环形和两个线形,其中一个我试图旋转。戒指的形状没有问题,我无法将两条线放在中间,甚至让它们显示出来。
答案 0 :(得分:15)
我使用这个可绘制的xml完成了类似的东西(中间带有白色加号的实心圆圈):
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<solid android:color="@color/accent"/>
</shape>
</item>
<item>
<shape android:shape="line">
<stroke android:width="5dp" android:color="@android:color/white" />
</shape>
</item>
<item>
<rotate
android:fromDegrees="90"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="-90">
<shape android:shape="line">
<stroke android:width="5dp" android:color="@android:color/white" />
</shape>
</rotate>
</item>
</layer-list>
答案 1 :(得分:1)
在RelativeLayout中:
<View
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/circle_add"/>
circle_add:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:top="0dp" android:left="0dp" android:bottom="0dp" android:right="0dp">
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid
android:color="@color/bus_green" />
<size
android:width="30dp"
android:height="30dp" />
</shape>
</item>
<item android:top="10dp" android:left="17dp" android:bottom="10dp" android:right="17dp">
<shape>
<stroke android:width="0dp" android:color="#ff207d94" />
<padding android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp" />
<corners android:radius="0dp" />
<solid android:color="#ffffffff" />
</shape>
</item>
<item android:top="17dp" android:left="10dp" android:bottom="17dp" android:right="10dp">
<shape>
<stroke android:width="0dp" android:color="#ff207d94" />
<padding android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp" />
<corners android:radius="0dp" />
<solid android:color="#ffffffff" />
</shape>
</item>
</layer-list>
答案 2 :(得分:0)
我认为这种方法仍然有效,因为它仍然在XML中使用drawable
。
您可以在Android Studio中创建名为add circle outline
的新矢量资产。
这是它生成的代码:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M13,7h-2v4L7,11v2h4v4h2v-4h4v-2h-4L13,7zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8z"/>
</vector>