2015-07-31 1 views
1

Мне нужно создать некоторые чертежи, которые выглядят как изображение ниже, есть ли способ сделать это в xml?Android: написание чертежей в xml

image http://oi59.tinypic.com/26077gy.jpg

Edit:

Я получил это:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/darker_gray" /> 
      <corners android:radius="6dp" /> 
     </shape> 
    </item> 

    <item 
     android:bottom="3dp"> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/dark_gray" /> 
      <corners android:radius="6dp" /> 
     </shape> 
    </item> 
</layer-list> 

это то же самое, как на картинке без этого синего угла, и я понятия не имею, как это сделать диагональную форму. Теперь я использую 9 патч, но так как все мои другие кнопки в XML, мне было просто интересно, если есть какой-то способ, чтобы написать это также в XML

+0

Что вы пробовали до сих пор? –

+0

Посмотрите на это http://stackoverflow.com/q/30635406/1384010, это что-то рядом с вашим требованием. И посмотрите на http://stackoverflow.com/a/6263918/1384010, чтобы сделать круглый способный. –

ответ

1

Попробуйте этот код, я думаю, это то, что вы хотите:

draw.xml

<?xml version="1.0" encoding="utf-8"?> 
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 


    <item> 
      <shape 
      android:shape="rectangle"> 
      <size android:width="100dp" 
         android:height="60dp"/> 
       <stroke android:width="2dp" android:color="#333333" /> 
       <solid android:color="#333333" /> 
       <padding android:bottom="3dp"/> 
       <corners android:radius="5dp"/> 
      </shape> 
     </item> 

     <item> 
      <shape 
      android:shape="rectangle"> 
       <size android:width="100dp" 
         android:height="60dp"/> 
       <stroke android:width="2dp" android:color="#000000" /> 
       <solid android:color="#000000" /> 
       <padding android:bottom="1dp"/> 
       <corners android:radius="5dp"/> 
      </shape> 
     </item> 


     <item> 
      <rotate 
       android:fromDegrees="-45" 
       android:toDegrees="45" 
       android:pivotX="-40%" 
       android:pivotY="87%" > 
       <shape 
        android:shape="rectangle" > 
        <size android:width="50dp" 
         android:height="50dp"/> 
        <stroke android:color="@android:color/transparent" android:width="0dp"/> 
        <solid 
         android:color="@android:color/holo_blue_light" /> 
        <corners android:radius="5dp"/> 
       </shape> 
      </rotate> 
     </item> 
     <item> 
      <shape 
      android:shape="rectangle"> 
       <size android:width="100dp" 
         android:height="60dp"/> 
       <stroke android:width="2dp" android:color="@android:color/transparent" /> 
       <solid android:color="@android:color/transparent" /> 
       <corners android:radius="5dp"/> 
      </shape> 
     </item> 
    </layer-list> 

и в файле макета

<RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="20dp" 
     android:layout_centerInParent="true" 
     android:background="@drawable/draw" > 
    </RelativeLayout> 
0

You should use layer list to combine multiple drawablesНиже приведен пример.

Вы также должны проверить это very complete guide to android drawable

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape 
     android:shape="rectangle"> 
      <stroke android:width="1dp" android:color="#585858" /> 
      <solid android:color="#FF9009" /> 
      <padding android:bottom="1dp"/> 
     </shape> 
    </item> 
    <item android:left="10dp" android:top="20dp" android:bottom="20dp" android:right="150dp"> 
     <shape 
     android:shape="oval"> 
      <stroke android:width="1dp" android:color="#ffffff" /> 
      <solid android:color="#118C4E" /> 
      <padding android:bottom="1dp"/> 
     </shape> 
    </item> 
    <item android:left="150dp" android:top="20dp" android:bottom="20dp" android:right="10dp"> 
     <shape 
     android:shape="rectangle"> 
      <stroke android:width="1dp" android:color="#ffffff" /> 
      <solid android:color="#C1E1A6" /> 
      <padding android:bottom="1dp"/> 
     </shape> 
    </item> 
</layer-list>