Как нарисовать форму, используя XML в Android

Необходимо нарисовать следующий круг, с красным цветом формы, используя XML.

Можно ли нарисовать это, используя только XML?

3 ответа

Решение

Вы можете сделать круг, используя следующие XML код:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
<solid android:color="#c4bfbf"/>
</shape>

Вы можете добавить вышеуказанный круг в качестве фона для вида, а поверх этого вида вы можете сохранить другой вид, который может быть в центре по вертикали, и это XML было бы:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle" >
    <solid android:color="#FF0000"  />
    <padding android:bottom="1dp" android:left="10dp" android:right="10dp" android:top="1dp"/>
    <corners
        android:bottomRightRadius="20dp"
        android:bottomLeftRadius="20dp"
        android:topLeftRadius="20dp"
        android:topRightRadius="20dp"/>
</shape>

Рисовать круг программно, вы можете использовать этот способ, это сработало для меня

ShapeDrawable biggerCircle= new ShapeDrawable( new OvalShape());
                biggerCircle.setIntrinsicHeight( 60 );
                biggerCircle.setIntrinsicWidth( 60);
                biggerCircle.setBounds(new Rect(30, 30, 30, 30));
                biggerCircle.getPaint().setColor(Color.parseColor(first));//give any color here
                holder.firstcolor.setBackgroundDrawable(biggerCircle); 

Я создал подобную форму, где внешний серый круг содержит красный круг внутри. Вот код:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="#E84F3D" />
<stroke
    android:width="15dp"
    android:color="#BEBEBE" />

</shape>
Другие вопросы по тегам