2015-03-13 128 views
5

我試圖得到一個圓在中間交叉(加),如下所示:Android的形狀:圓形十字(加)

enter image description here

大多數教程我一直閱讀在層次列表中根本沒有任何幫助。這是我到目前爲止的代碼:

<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

爲什麼不使用矩形而不旋轉? – jyoon 2015-03-13 14:55:55

+0

@jyoon這是我的第一個方法,我也沒有得到這個工作:/我不知道如何集中線條。 – 2015-03-13 14:57:39

+0

'android:gravity =「center」'或者類似的東西就可以實現。 – jyoon 2015-03-13 15:12:04

回答

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> 
13

我完成使用該繪製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>