Đặt huy hiệu của bạn thành a TextView, cho phép bạn đặt giá trị số thành bất kỳ thứ gì bạn thích bằng cách gọi setText(). Đặt nền của TextViewtệp dưới dạng XML có thể <shape>vẽ được, nhờ đó bạn có thể tạo một hình tròn liền khối hoặc chuyển màu có viền. Một tệp có thể vẽ được XML sẽ chia tỷ lệ để vừa với chế độ xem vì nó thay đổi kích thước với nhiều văn bản hơn hoặc ít hơn.
res / drawable / huy hiệu_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>
Tuy nhiên, bạn sẽ phải xem xét tỷ lệ của hình bầu dục / hình tròn với các số lớn 3-4 chữ số. Nếu hiệu ứng này là không mong muốn, hãy thử cách tiếp cận hình chữ nhật tròn như bên dưới. Với số lượng nhỏ, hình chữ nhật vẫn sẽ giống hình tròn khi các bán kính hội tụ với nhau.
res / drawable / huy hiệu_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>
Với nền có thể mở rộng được tạo, bạn chỉ cần thêm nó vào nền của một TextView, như sau:
<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"/>
Cuối cùng, những TextViewhuy hiệu này có thể được đặt trong bố cục của bạn trên đầu các nút / tab thích hợp. Tôi có thể sẽ làm điều này bằng cách nhóm từng nút với huy hiệu của nó trong một vùng RelativeLayoutchứa, như vậy:
<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>
Hy vọng rằng đó là đủ thông tin để ít nhất đưa bạn đi đúng hướng!