Android:为我的应用内部的图标添加徽章

时间:2010-04-09 19:41:19

标签: java android eclipse

我正在尝试为我的Android应用中的图标添加徽章。例如在Facebook应用程序(对于iPhone)中,在主页中,待处理请求的数量显示在请求图标上。

有人可以提供有关如何执行此操作的任何链接/想法吗?

由于

6 个答案:

答案 0 :(得分:20)

如果你真的想这样做。使用FrameLayout包含带有您图标的ImageView和带有9patch drawable的TextView作为背景的右侧角落。如果您希望徽章位于图标之外,请为ImageView添加边距。

答案 1 :(得分:8)

感谢Alexanderblom,因为hints.i使用了这个逻辑并设法在内部imageicon上创建徽章。这是xml文件。你必须在drawable上创建一个红色圆圈。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frameLayout1"
    android:layout_width="wrap_content"
   android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />


    <TextView
        android:id="@+id/textView1"
        android:layout_width="20dip"
        android:layout_height="20dip"
        android:text="5"
        android:textColor="@color/black"
        android:textStyle="bold"
        android:padding="2sp"
        android:gravity="center"
        android:background="@drawable/circle"
        android:layout_gravity="top|right" />

</FrameLayout>

并且circle.xml是

<item>
    <shape android:shape="oval">
        <solid android:color="@android:color/black" />
    </shape>
</item>
<item android:top="1dp" android:left="1dp" android:right="1dp" android:bottom="1dp">
    <shape android:shape="oval">
        <solid android:color="@color/Red" />

    </shape>
</item>

答案 2 :(得分:7)

Android不支持图标上的徽章。

相反,它提供了通知系统(通知栏中的图标等),以及创建可以添加到用户“桌面”的widgets的功能。

答案 3 :(得分:3)

选中此库,将徽章添加到图标/按钮/标签

https://github.com/jgilfelt/android-viewbadger

答案 4 :(得分:2)

尝试这个,对索尼,三星,LG,HTC,小米,华硕,ADW,APEX和NOVA发射器都有好处。

https://github.com/leolin310148/ShortcutBadger

答案 5 :(得分:0)

按照以下定义步骤,将通知计数添加到应用图标

步骤:

  1. 将mavenCentral添加到构建脚本中。

    存储库{mavenCentral()}

  2. 在您的app gradle中添加依赖项。

    依赖{ 编译&#39; me.leolin:ShortcutBadger:1.1.4@aar' 要么 编译&#39; me.leolin:ShortcutBadger:1.1.3@aar' }

  3. 在app图标上添加以下代码以显示通知计数:

    int badgeCount = 1; ShortcutBadger.applyCount(context,badgeCount); //对于1.1.4             要么 ShortcutBadger.with(getApplicationContext())计数(badgeCount)。 // for 1.1.3

  4. 如果您要删除徽章

    ShortcutBadger.removeCount(上下文); // for 1.1.4 ShortcutBadger.with(getApplicationContext())。remove(); //对于1.1.3              要么 ShortcutBadger.applyCount(context,0); // for 1.1.4 ShortcutBadger.with(getApplicationContext())。count(0); // for 1.1.3