QQ小红点

作者: devbird | 来源:发表于2017-08-18 09:41 被阅读61次

    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下载查看源代码
    源码地址

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

    相关文章

      网友评论

        本文标题:QQ小红点

        本文链接:https://www.haomeiwen.com/subject/pfborxtx.html