Oto, co wymyśliłem.
użyłem TextView
s z layer-list
tle. Tło pasuje do rozmiaru widoku, w którym jest załadowany, więc aby mieć okrąg, można wymusić, aby TextView
miał taką samą szerokość i wysokość.
<TextView
android:id="@+id/view"
android:layout_width="65dp"
android:layout_height="65dp"
android:gravity="center"
android:textSize="40dp"
android:fontFamily="sans-serif-thin"
android:background="@drawable/background"
android:text="A"/>
Mam na stałe tekst, rozmiar, szerokość i wysokość, ale można nimi zarządzać w czasie wykonywania. fontFamily="sans-serif-thin"
pozwala ci użyć, jeśli to możliwe, cienkiego kroju, który może być lepszy. Lista warstw:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:top="1dp">
<shape android:shape="oval" >
<solid android:color="#321a1a1a"/>
</shape>
</item>
<item
android:top="1dp"
android:bottom="1dp"
android:left="1dp"
android:right="1dp">
<shape android:shape="oval" >
<solid android:color="@color/red_700"/>
</shape>
</item>
</layer-list>
Pierwszy element to pokazanie fałszywego cienia, ale możesz się tego pozbyć. Możesz również usunąć jego przesunięcie android:top="1dp"
. W ten sposób będziesz miał okrągły pierścień 1dp na zewnątrz (podczas gdy teraz cień jest rzutowany tylko na dole i na obie strony).
Ponownie, mam zakodowane kolory, ale możesz zmienić to, co chcesz.
Proszę podać jakiś opis jak to poszło katastrofalnie źle. Również ten wpis może być istotny: http://stackoverflow.com/questions/26931909/android-how-to-define-a-configurable-size-shape – corsair992