Как создать кольцо (круглое) ShapeDrawable - PullRequest
0 голосов
/ 08 октября 2019

Мне нужно установить круглую форму поверх ImageView

Вот что я пробовал до сих пор:

float[] outerR = new float[]{8, 8, 8, 8, 8, 8, 8, 8};
 RoundRectShape roundrect = new RoundRectShape(outerR, null, null);
 ShapeDrawable drawable = new ShapeDrawable(roundrect);

Это обеспечивает овальную форму. Мне нужна круглая форма. Как это исправить? Thx

enter image description here

Ответы [ 2 ]

0 голосов
/ 08 октября 2019

Достигнув этого, вы можете достичь.

     <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <ImageView
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:src="@drawable/ic_email_black_24dp"/>

        <TextView
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_gravity="end"
            android:gravity="center"
            android:background="@drawable/bg_circle"
            android:text="5"
            android:textColor="@android:color/white"/>
    </FrameLayout>

bg_circle

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <solid android:color="@android:color/holo_red_dark"/>

    <size android:height="10dp"
        android:width="10dp"/>

    <corners android:radius="10dp"/>

</shape>

Таким образом вы получите тот же результат.

0 голосов
/ 08 октября 2019

Сначала создайте файл xml drawable в папке drawable в каталоге res. Затем в этот файл xml вставьте этот код:

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

   <solid 
       android:color="#666666"/>

   <size 
       android:width="50dp"
        android:height="50dp"/>
</shape>

и установите drawable как background вашего textView. Да, это решит вашу проблему.

...