android 开发程序员

QQ小红点

2017-08-18  本文已影响61人  devbird

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();

为了方便支持了两种回调方式,第一种针对需要实现所有回调方法;第二种则可以实现自己需要回调的方法。

    mDragView.setOnDragListener(new DragBubbleViewListener() {
            @Override
            public void onBubbleViewDismiss() {

            }

            @Override
            public void onBubbleViewDragging(PointF dragPoint) {

            }

            @Override
            public void onBubbleViewReset() {

            }
        });
    mDragView.setOnDragListenerAdapter(new DragBubbleViewAdapter() {
            @Override
            public void onBubbleViewDismiss() {
                Toast.makeText(mContext, mDataList.get(position) + "气泡消失", Toast.LENGTH_SHORT).show();
            }
        });

4.效果图:

效果图效果图

代码的具体实现可以去GitHub下载查看源代码
源码地址

参考:仿QQ 拖动小红点原理及其实现

上一篇下一篇

猜你喜欢

热点阅读