2015-10-23 12 views
1

Я пытаюсь создать форму с возможностью рисования, как показано ниже.Android Shape - квадрат с кругом и разными верхними цветами

enter image description here

где только верхний левый раздел находится в другом цвете (здесь белый). Мысль о размещении прямоугольника с меньшим размером позволила бы мне достичь этого, но я был неправ. Я даже иду в правильном направлении?

Это мой drawable.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="15dp" android:height="15dp"/> 
     <solid android:color="@android:color/white" /> 
    </shape> 
</item> 
<item> 
    <shape android:shape="oval"> 
     <solid android:color="@android:color/black" /> 
    </shape> 
</item> 
</layer-list> 
+0

создать пользовательский класс 'Shape' и передать его в' ShapeDrawable' конструктора – pskink

ответ

2
<?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="60dp" android:height="60dp"/> 
      <solid android:color="@android:color/white" /> 
     </shape> 
    </item> 



    <item android:left="40dp"> 
     <shape android:shape="rectangle"> 
      <size android:width="30dp" android:height="30dp"/> 
      <solid android:color="#ff0000" /> 
     </shape> 
    </item> 

    <item android:top="30dp" android:bottom="0dip"> 
     <shape android:shape="rectangle"> 
      <size android:width="10dp" android:height="10dp"/> 
      <solid android:color="#ff0000" /> 
     </shape> 
    </item> 

    <item> 
    <shape android:shape="oval"> 
     <stroke android:color="@android:color/black" android:width="1dp"/> 
     <size android:width="60dp" android:height="60dp"/> 
     <solid android:color="#ff0000" /> 
    </shape> 
</item> 

</layer-list> 
+0

Wow! это было быстро и префект. Благодаря тонну. – Krishnaraj

+0

если мой размер варьируется, значит, он не работает для меня? Что такое логика здесь, как 60dp, 40dp, 30dp, 10dp? –

+0

, тогда вы должны создать это программно – theLazyFinder