【问题标题】:Show unread notification badge in Circle Android在 Circle Android 中显示未读通知徽章
【发布时间】:2020-01-24 17:08:37
【问题描述】:

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

<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>

【问题讨论】:

标签: android android-drawable


【解决方案1】:

我已尝试关注,它对我有用

<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" />

【讨论】:

    【解决方案2】:

    尝试像这样创建圆形徽章:

    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>
    

    【讨论】:

    • 这也给了我椭圆形
    【解决方案3】:

    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>
    

    并使用以下代码创建一个名为“item_count.xml”的新文件:

    <?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>
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      • 1970-01-01
      • 2020-08-05
      • 1970-01-01
      • 2021-10-25
      • 2014-07-29
      • 2017-11-14
      相关资源
      最近更新 更多