像QQ把联系人头像添加到桌面并显示消息个数的效果:bubbles-for-android

jopen 9年前

Bubbles for Android是一个Android库,提供类似QQ那样可以把联系人头像添加到桌面并显示消息个数的效果。

Logo

使用说明:

配置项目的依赖

在build.gradle文件中添加依赖。

dependencies {      ...      compile 'com.txusballesteros:bubbles:1.1'  }

配置AndroidManifest

在AndroidManifest.xml 文件中添加下面的代码

<manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="com.txusballesteros.bubbles.app" >        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />        <application ...>            ...            <service android:name="com.txusballesteros.bubbles.BubblesService"              android:enabled="true"              android:exported="false" />        </application>    </manifest>

添加第一个Bubble

构建Bubble layout,记住,第一个view必须是BubbleLayout

<com.txusballesteros.bubbles.BubbleLayout      xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_width="wrap_content"      android:layout_height="wrap_content">        <ImageView          android:id="@+id/avatar"          android:layout_width="70dp"          android:layout_height="70dp"          android:layout_gravity="center"          android:background="@drawable/profile_decorator"          android:src="@drawable/profile"          android:scaleType="centerCrop"/>    </com.txusballesteros.bubbles.BubbleLayout>

创建BubblesManager实例

private BubblesManager bubblesManager;    @Override  protected void onCreate(Bundle savedInstanceState) {       bubblesManager = new BubblesManager.Builder(this)                                          .build();       bubblesManager.initialize();      ...  }    @Override  protected void onDestroy() {      bubblesManager.recycle();      ...  }

Bubble依附到窗口。

BubbleLayout bubbleView = (BubbleLayout)LayoutInflater                                      .from(MainActivity.this).inflate(R.layout.bubble_layout, null);  bubblesManager.addBubble(bubbleView, 60, 20);

配置bubbles垃圾桶

如果你想用一个垃圾桶来去除屏幕上的bubbles,你可以配置它的布局。

定义垃圾桶的布局:

<ImageView      xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_marginBottom="20dp"      android:src="@mipmap/bubble_trash_background"      android:layout_gravity="bottom|center_horizontal" />

利用BubblesManager builder来配置垃圾桶布局

private BubblesManager bubblesManager;    @Override  protected void onCreate(Bundle savedInstanceState) {       bubblesManager = new BubblesManager.Builder(this)                                          .setTrashLayout(R.layout.bubble_trash_layout)                                          .build();       bubblesManager.initialize();      ...  }

项目主页:http://www.open-open.com/lib/view/home/1436406125677