Android中Drag and Drop拖拽功能的使用1-----基本实现

本文介绍了Android中使用内置API实现拖拽功能的步骤,包括View的startDrag方法和OnDragListener监听。通过长按启动拖拽,详细代码示例可在给出的博客链接中查看。
摘要由CSDN通过智能技术生成

Android中的拖拽功能是有自带的api的;(很多时候会误以为要自定义控件,所以我放到了,自定义目录下)
参考文档:
http://www.android-doc.com/guide/topics/ui/drag-drop.html
我写了一个例子分析:
效果图:
在这里插入图片描述
思路:
1主要用到了View的startDrag(startDragAndDrop API24+) 方法
2拖拽的监听OnDragListener方法
具体实现:
第一步:通过一个长按事件启动拖拽:

imageView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                Intent intent = new Intent();
                ClipData clipData = ClipData.newIntent("label", intent);

                View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(v);
                v.startDrag(null, shadowBuilder, imageView, 0);
                //震动反馈
                v.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
                return true;
            }
        });

第二步:OnDragListener监听拖拽

linearLayout.setOnDragListener(new View.OnDragListener() {
            @Override
            public boolean onDrag(View v, DragEvent event) {
                //v 永远是设置该监听的view,这里即fl_blue
                String simpleName = v.getClass().getSimpleName();
//                Log.w(BLUE, "view name:" + simpleName);

                //获取事件
                int action = event.getAction();
                switch (action) {
                    case DragEvent.ACTION_DRAG_STARTED:
                        Log.i("111", "开始拖拽");
                        imageView.setVisibility(View.INVISIBLE);
               
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值