Rendi il tuo badge a TextView, permettendoti di impostare il valore numerico su qualsiasi cosa tu voglia chiamando setText(). Imposta lo sfondo del TextViewcome un <shape>disegnabile XML , con il quale puoi creare un cerchio pieno o sfumato con un bordo. Un disegnabile XML si ridimensionerà per adattarsi alla vista mentre viene ridimensionato con più o meno testo.
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>
Tuttavia, dovrai dare un'occhiata a come l'ovale / cerchio scala con numeri grandi a 3-4 cifre. Se questo effetto non è desiderabile, prova un approccio a rettangolo arrotondato come di seguito. Con numeri piccoli, il rettangolo apparirà ancora come un cerchio mentre i raggi convergono insieme.
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>
Con lo sfondo scalabile creato, lo aggiungi semplicemente allo sfondo di un TextView, in questo modo:
<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"/>
Infine, questi TextViewbadge possono essere posizionati nel layout sopra i pulsanti / schede appropriati. Probabilmente lo farei raggruppando ogni pulsante con il suo badge in un RelativeLayoutcontenitore, in questo modo:
<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>
Spero che siano informazioni sufficienti per farti almeno indirizzare nella giusta direzione!