Machen Sie Ihr Abzeichen zu einem TextView
, damit Sie den numerischen Wert durch Aufrufen auf einen beliebigen Wert einstellen können setText()
. Legen Sie den Hintergrund von TextView
als XML- <shape>
Zeichen fest, mit dem Sie einen durchgezogenen Kreis oder einen Verlaufskreis mit einem Rahmen erstellen können. Ein XML-Zeichen wird an die Ansicht angepasst, da die Größe mit mehr oder weniger Text geändert wird.
res / drawable / badge_circle.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="#F00" />
<stroke
android:width="2dip"
android:color="#FFF" />
<padding
android:left="5dip"
android:right="5dip"
android:top="5dip"
android:bottom="5dip" />
</shape>
Sie müssen sich jedoch ansehen, wie das Oval / der Kreis mit großen 3-4-stelligen Zahlen skaliert. Wenn dieser Effekt unerwünscht ist, versuchen Sie es mit einem abgerundeten Rechteck wie unten. Bei kleinen Zahlen sieht das Rechteck immer noch wie ein Kreis aus, wenn die Radien zusammenlaufen.
res / drawable / badge_circle.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="10dip"/>
<solid
android:color="#F00" />
<stroke
android:width="2dip"
android:color="#FFF" />
<padding
android:left="5dip"
android:right="5dip"
android:top="5dip"
android:bottom="5dip" />
</shape>
Wenn der skalierbare Hintergrund erstellt wurde, fügen Sie ihn einfach wie folgt zum Hintergrund von a hinzu TextView
:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="10"
android:textColor="#FFF"
android:textSize="16sp"
android:textStyle="bold"
android:background="@drawable/badge_circle"/>
Schließlich können diese TextView
Abzeichen in Ihrem Layout über den entsprechenden Schaltflächen / Registerkarten platziert werden. Ich würde dies wahrscheinlich tun, indem ich jeden Knopf mit seinem Abzeichen in einem RelativeLayout
Container gruppiere , wie folgt:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/myButton"
android:layout_width="65dip"
android:layout_height="65dip"/>
<TextView
android:id="@+id/textOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/myButton"
android:layout_alignRight="@id/myButton"
android:text="10"
android:textColor="#FFF"
android:textSize="16sp"
android:textStyle="bold"
android:background="@drawable/badge_circle"/>
</RelativeLayout>
Hoffentlich sind das genug Informationen, um Sie zumindest in die richtige Richtung zu lenken!