QQ小紅點消息氣泡拖來拽去是不是很有意思?這篇文章主要介紹QQ小紅點消息氣泡庫的實現,實現后的效果是使用簡單,功能強大。
在參考了一些其他文章介紹如何實現QQ小紅點氣泡的實現后,我覺得都有一些不足的地方,比如不能像使用一般控件那樣來使用,或者不夠實現比較復雜等,基于這些不足我覺得重新設計一個相對完美的輪子很有必要。
使用方法:
1.添加依賴
compile 'com.tiandawu.library:dragbubbleview:1.0.0'
2.添加DragBubbleView
在需要使用的地方可以像使用一般自定義控件一樣引入:
<com.tiandawu.library.DragBubbleView
android:id="@+id/mDragView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@android:color/white" />
3.回調需要的方法:
控件支持回調如下三個方法:
/**
* 氣泡消失
*/
void onBubbleViewDismiss();
/**
* 氣泡拖拽中
*
* @param dragPoint 拖拽點
*/
void onBubbleViewDragging(PointF dragPoint);
/**
* 氣泡還原
*/
void onBubbleViewReset();
為了方便支持了兩種回調方式,第一種針對需要實現所有回調方法;第二種則可以實現自己需要回調的方法。
- 3.1 回調的第一種方式:
mDragView.setOnDragListener(new DragBubbleViewListener() {
@Override
public void onBubbleViewDismiss() {
}
@Override
public void onBubbleViewDragging(PointF dragPoint) {
}
@Override
public void onBubbleViewReset() {
}
});
- 3.2 回調方的第二種方式:
mDragView.setOnDragListenerAdapter(new DragBubbleViewAdapter() {
@Override
public void onBubbleViewDismiss() {
Toast.makeText(mContext, mDataList.get(position) + "氣泡消失", Toast.LENGTH_SHORT).show();
}
});
4.效果圖:

效果圖
代碼的具體實現可以去GitHub
下載查看源代碼
源碼地址