QQ小紅點(diǎn)消息氣泡拖來(lái)拽去是不是很有意思?這篇文章主要介紹QQ小紅點(diǎn)消息氣泡庫(kù)的實(shí)現(xiàn)街望,實(shí)現(xiàn)后的效果是使用簡(jiǎn)單校翔,功能強(qiáng)大。
在參考了一些其他文章介紹如何實(shí)現(xiàn)QQ小紅點(diǎn)氣泡的實(shí)現(xiàn)后灾前,我覺(jué)得都有一些不足的地方防症,比如不能像使用一般控件那樣來(lái)使用,或者不夠?qū)崿F(xiàn)比較復(fù)雜等哎甲,基于這些不足我覺(jué)得重新設(shè)計(jì)一個(gè)相對(duì)完美的輪子很有必要蔫敲。
使用方法:
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.回調(diào)需要的方法:
控件支持回調(diào)如下三個(gè)方法:
/**
* 氣泡消失
*/
void onBubbleViewDismiss();
/**
* 氣泡拖拽中
*
* @param dragPoint 拖拽點(diǎn)
*/
void onBubbleViewDragging(PointF dragPoint);
/**
* 氣泡還原
*/
void onBubbleViewReset();
為了方便支持了兩種回調(diào)方式,第一種針對(duì)需要實(shí)現(xiàn)所有回調(diào)方法炭玫;第二種則可以實(shí)現(xiàn)自己需要回調(diào)的方法奈嘿。
- 3.1 回調(diào)的第一種方式:
mDragView.setOnDragListener(new DragBubbleViewListener() {
@Override
public void onBubbleViewDismiss() {
}
@Override
public void onBubbleViewDragging(PointF dragPoint) {
}
@Override
public void onBubbleViewReset() {
}
});
- 3.2 回調(diào)方的第二種方式:
mDragView.setOnDragListenerAdapter(new DragBubbleViewAdapter() {
@Override
public void onBubbleViewDismiss() {
Toast.makeText(mContext, mDataList.get(position) + "氣泡消失", Toast.LENGTH_SHORT).show();
}
});
4.效果圖:
![效果圖](https://static.oschina.net/uploads/img/201708/13215031_OqjK.gif)
效果圖
代碼的具體實(shí)現(xiàn)可以去GitHub
下載查看源代碼
源碼地址