在Circle Android中显示未读通知徽章

时间:2016-01-18 11:52:30

标签: android android-drawable

我正在尝试在标签中显示未读通知。以下是我的自定义标签布局。

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <TextView
        android:id="@+id/tabTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="sample"
        android:alpha="0.5"
        android:textStyle="bold"
        android:layout_marginRight="4dp"
        android:textColor="@android:color/white"
        />
    <TextView
        android:id="@+id/tabBadge"
        android:layout_width="28dp"
        android:layout_height="28dp"
        android:layout_toRightOf="@id/tabTitle"
        android:layout_centerVertical="true"
        android:textColor="#FFF"
        android:gravity="center"
        android:text="10"
        android:visibility="visible"
        android:textStyle="bold"
        android:background="@drawable/badge_circle"/>
</RelativeLayout>

我在下面尝试逐一使用badge_circle.xml。但所有这些都只给我椭圆形。我现在对如何制作圆形形状感到困惑。

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="ring" >
        <gradient
            android:startColor="#FFFF0000"
            android:endColor="#FFFF0000"
            android:angle="270"/>
    </shape>


<?xml version="1.0" encoding="utf-8"?>

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

        
  <gradient
            
            android:type="radial"
            
            android:gradientRadius="5"
            
            android:centerX=".2"
            
            android:centerY=".1"
            
            android:startColor="#FFFF00"
            
            android:endColor="#FFFF99" />

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

</shape>
<shape
        
       xmlns:android="http://schemas.android.com/apk/res/android"
          android:shape="oval">
        
  <solid
            
         android:color="#d3d3d3"/>
        
  <size
            android:width="8dp"
            android:height="8dp"/>

</shape>

<shape
        
       xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval">
       
  <gradient
            
            android:angle="0"
            
            android:startColor="#FF000000"
            
            android:endColor="#FFFFFFFF" />

</shape>

3 个答案:

答案 0 :(得分:0)

我试过以下,它正在为我工​​作

<TextView
        android:id="@+id/textviewUnreadCount"
        android:layout_width="26dp"
        android:layout_height="26dp"
        android:layout_centerVertical="true"
        android:background="@drawable/rounded_textview"
        android:gravity="center_vertical|center_horizontal"
        android:padding="1dp"
        android:singleLine="true"
        android:text="1"
        android:textColor="#FFF"
        android:textSize="11sp" />

rounded_textview.xml

<solid android:color="#5477b1" />

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

答案 1 :(得分:0)

尝试创建如下的圆形徽章:

<强> badge_circular.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
   android:shape="oval">
<solid android:color="#00000000"
    /> 
<padding android:left="10dp" android:top="5dp"
         android:right="10dp" android:bottom="5dp" />
<stroke android:color="@color/dark_gray" android:width="2dp" />

</shape>

答案 2 :(得分:0)

Ichigo我尝试了你的代码但是没有为我工作,我想出了这段代码:

将此代码放在activity.xml

<RelativeLayout
    android:id="@+id/badge_layout1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <RelativeLayout
        android:id="@+id/relative_layout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/button1"
            android:layout_width="65dip"
            android:layout_height="65dip"
            android:background="@drawable/chat_icon" />
    </RelativeLayout>
    <TextView
        android:id="@+id/badge_notification_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@id/relative_layout"
        android:background="@drawable/item_count"
        android:text="16"
        android:textColor="#FFF"
        android:textSize="16sp"
        android:textStyle="bold" />
</RelativeLayout>

并创建一个名为&#34; item_count.xml&#34;的新文件。使用以下代码:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
    <corners android:radius="8dp" />
    <solid android:color="#f20000" />
    <stroke
        android:width="2dip"
        android:color="#FFF" />
    <padding
        android:bottom="5dp"
        android:left="5dp"
        android:right="5dp"
        android:top="5dp" />
</shape>

这是一个简单而完美的代码,可以尝试使用