使控件可拖拽

JS 实现控件拖拽/拖动 下面是实现控件拖拽的完整代码,只实现了拖拽,边界控制没做,可以自行添加。 (function ($) {     var move = false;             //标记控件是否处于被拖动状态     var dragOffsetX = 0;        //控件左边界和鼠标X轴的差     var dragOffsetY = 0;        //控件上边界和鼠标 阅读详情
/**
     * 监听控件移动状态
     * @param view 控件
     */
    private void moveView(final View view) {
        //获得整个屏幕的宽、高
        WindowManager wWM = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
        final int w = wWM.getDefaultDisplay().getWidth();
        final int h = wWM.getDefaultDisplay().getHeight();
        //监听
        view.setOnTouchListener(new View.OnTouchListener() {
            private int startX;
            private int startY;
            @Override
            public boolean onTouch(View v, MotionEvent event) {

                switch (event.getAction()) {
                    //按下(执行1次)
                    case MotionEvent.ACTION_DOWN:
                        //手指按下时的那个坐标:离左边界、上边界的距离
                        startX = (int) event.getRawX();
                        startY = (int) event.getRawY();
                        break;
                    //移动(执行N次)
                    case MotionEvent.ACTION_MOVE:
                        //1.手指滑动后那个坐标:距离左边界、上边界的距离
                        int moveX = (int) event.getRawX();
                        int moveY = (int) event.getRawY();
                        //2.滑动后-按下时=手指移动了多少距离(X、Y)
                        int moveLengthX = moveX - startX;
                        int moveLengthY = moveY - startY;
                        //3.算出移动了多少距离之后,
                        //就可以把控件当前所在位置的上下边+手指移动的Y距离;左右边+手指移动的X距离,这样移动后控件应该出现的位置就很明确了
                        int left = view.getLeft() + moveLengthX;
                        int top = view.getTop() + moveLengthY;
                        int right = view.getRight() + moveLengthX;
                        int bottom = view.getBottom() + moveLengthY;
                        //按个人需要增添:以下判断是防止控件被拖出屏幕(可以先不加然后看看效果)
                        if (bottom>h-70||left<0||top<0||right>w) {
                            //减70是减去手机最上面的状态栏的高度,不同手机状态栏高度不同,自己调节
                            return true;
                        }
                        //4.把控件定位到移动后的位置
                        view.layout(left, top, right, bottom);
                        //5.把这个位置又作为起始坐标
                        startX = (int) event.getRawX();
                        startY = (int) event.getRawY();
                        break;
                    //抬起(执行1次)
                    case MotionEvent.ACTION_UP:
                    //本次监听结束:如果你要做回显的话就把现在控件位置存进SharedPreferences偏好设置里,下次进界面时取出来,初始化控件到这个位置

                        break;
                }
                //如果只设置控件能拖拽就返回true,如果既设置拖拽又设置了点击事件就返回false
                return true;
            }
        });
    }
flex实现的拖拽控件 一个自定义的拖拽flex控件,可以实现复制拖拽,不复制拖拽,可以拖拽图片,也可以由文字拖拽后变成图片。 立即下载

相关推荐

CListCtrl控件实现Item项拖拽效果

实现CListCtrl控件的Item项拖拽效果,本源码对应的博客链接为:http://blog.youkuaiyun.com/d704791892/article/details/22600075

Qt/C++编写控件属性设计器1-加载插件

一、前言 加载插件是整个属性设计器的第一步要打通的功能,插件中的控件都加载不了,后面就别搞别玩下去了没法玩的,要从一个动态库中加载出来控件,肯定需要用到反射机制,以前做.NET开发的时候就觉得反射这个东西相当强大,居然可以读取DLL加载出来控件,现在用Qt,发现Qt也有反射机制,也许这东东可能各大开发语言平台都具备吧,Qt反射对应的类叫QMetaObject,着实强大,其实整个Qt开发框架也是超级...

Qt/C++视频监控/推流/物联网/大屏系统/自定义控件/UI定制/输入法 7854

最全软考高项工具技术总结(上)

第四版教材把工具和技术分为:数据收集技术、数据分析技术、数据表现技术、决策技术、沟通技巧、人际关系和团队技能、其他。我会按照上面的分类总结说明并标识他们用在哪些过程。小伙伴们可以通读理解做到有印象能选对应付上午选择,选几个深化用在下午论文的举例中。没必要背!

PM喵的窝 2045

浅谈WPF之控件拖拽与拖动

使用过office的visio软件画图的小伙伴都知道,画图软件分为两部分,左侧图形库,存放各种图标,右侧是一个画布,将左侧图形库的图标控件拖拽到右侧画布,就会生成一个新的控件,并且可以自由拖动。那如何在WPF程序中,实现类似的功能呢?今天就以一个简单的小例子,简述如何在WPF中实现控件的拖拽和拖动,仅供学习分享使用,如有不足之处,还请指正。涉及知识点WPF控件的拖拽与拖动,主要涉及的知识点如下所示...

zls365365的博客 1778

【面试经验】大疆笔试-计算机视觉算法B卷

3、a=np.random.randn(3,3) b=np.random.randn(3,1) ,那么c=a*b的维度应该是:*是元素乘法或者torch.mul,@才是矩阵乘法或者torch.matmul,不会触发广播机制;8、将分辨率降低一半时,精标定内参(fx、fy、cx、cy、k1、k2、k3)焦距、光心、畸变系数将分别变成(fx、fy、cx/2、cy/2、k1、k2、k3),只能搜到光心变成一半,畸变系数不变。12、KLT算法在频闪光源、重复纹理、高速机动、环境照度低的情况下效果显著下降。

litterfinger的博客 1448

手把手教你用WKT文件在Petrel中创建自定义坐标系统(附CGCS2000转换模板)

本文详细介绍了如何在Petrel软件中利用WKT文件创建自定义坐标系统,并重点提供了CGCS2000坐标系的完整转换模板与实战步骤。通过解析坐标系统的三大支柱(大地坐标系、投影坐标系、基准转换)和WKT文件结构,指导用户从零开始构建适用于本土化项目的坐标系统,确保地质建模与空间数据处理的精度与一致性。

gpt4scribbler的博客 279

PyQt5之拖拽功能(Drag&Drop)

PyQt5之拖拽功能(Drag&Drop)

清風明月_xf 的博客 2656

YOLOv8的Anchor-Free革新:从中心点预测到动态IoU匹配的全面解析

本文深入解析了YOLOv8采用Anchor-Free(无锚框)设计的核心优势与实现机制。通过摒弃预设锚框,模型直接预测目标中心点与宽高,结合解耦头、动态IoU匹配及Varifocal Loss等创新,显著简化了训练流程并提升了检测精度,尤其在小目标检测和模型泛化能力上表现突出。

weixin_29094301的博客 356

Qt自定义控件拖拽

该文档详细阐述了在Qt中实现自定义控件拖拽功能的步骤和关键点,包括拖放基本原理、事件处理、Item和Container类的属性设置及操作、以及动画效果的添加。通过代码示例和事件处理函数的实现,提供了实现拖拽功能的完整解决方案

Mmcom的博客 4029

Python金融数据获取工具库之baostock使用详解

在金融数据分析和量化交易中,获取准确及时的市场数据是非常重要的。baostock是一个专门为中国股市数据提供支持的 Python 库,它提供了免费的股票数据接口,用户可以方便地获取股票、指数、基金等各种金融数据。本文将详细介绍baostock库,包括其安装方法、主要特性、基本和高级功能,以及实际应用场景,帮助全面了解并掌握该库的使用。

Rocky006的博客 5345

agent-browser 安装笔记(OpenClaw)

【代码】agent-browser 安装笔记(OpenClaw)

tiantiantbtb的博客 1241

Android笔记 拖拽控件到指定区域

记录一下,免得之后忘了。

weixin_47082655的博客 1825

2026华为OD机试真题 9月27日 新系统 【均衡调度】

华为OD机试真题 新系统 9月27号【均衡调度】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【均衡调度】多语言题解。

qq_45776114的博客 1765

【Hello,PyQt】控件拖拽

在 PyQt 中实现控件拖拽功能的详细介绍拖拽功能是现代用户界面设计中常见的交互方式之一,它可以提高用户体验,增加操作的直观性。在 PyQt 中,我们可以很容易地实现控件之间的拖拽功能。本文将介绍如何在 PyQt 中实现控件的拖拽功能。

m0_72895175的博客 2576

RAG面试内容整理-7. 多轮问答与上下文拼接策略

在对话式的RAG应用中,多轮问答需要处理上下文相关性问题:用户的提问往往依赖于之前的对话内容。为正确理解用户每一轮的问题,系统需要保留和传递对话历史信息。

不务正业的猿 377

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Android 可点击的 有边界的 可拖拽控件

可点击的 有边界的 可拖拽控件 有这么一种需求 就是要求控件平时可以点击 然后呢 又可以在屏幕内随意拖拽 然后又不希望控件被拖出屏幕 以屏幕为边界 我们先捋一下思路 然后才能实现一下这个功能 主要功能点就是分为三个部分 我们逐级来实现 第一步 首先要实现可拖拽 这个要通过触摸事件的监听来做处理 第二步 要实现有边界 需要在拖拽过程中 或者在拖拽结束...

suwenlai的博客 968

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

winform窗体自由拖拽控件

源码地址:https://download.youkuaiyun.com/download/horseroll/10906640 实现功能:实现自由拖拽控件,按住鼠标控件拖拽时有黑框显示,松开鼠标控件位置即为黑框位置 实现思路:在按住鼠标时,得到所点击控件的Size以及Location,在鼠标移动时,得到鼠标的坐标,并且在光标坐标处绘制一个与控件大小相同的黑框,松开鼠标时得到黑框的Location,并将黑...

马儿不吃草 4106

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Flutter DragTarget拖拽控件详解

DragTarget是 Flutter 中处理拖拽操作的控件,提供了多种回调函数来控制拖拽行为。它与Draggable控件配合使用,实现复杂的拖拽交互。DragTarget支持灵活的 UI 设计,可以根据拖拽状态动态更新 UI,提供良好的用户体验。结束语Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。

江上清风山间明月的博客 1459

Qt Drag and Drop 实现拖拽控件效果

#在头文件中声明事件操作函数,MainWindow.h中如下: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : publ...

ASCE_Python的博客 4882

WPF下实现控件的拖拽功能

我们写运动控制上位机程序的时候,经常是要考虑如何实现一个流程,我们要考虑,完成当前步骤后,下一个步骤要实现什么,判断条件,满足后的步骤是什么,不满足条件的步骤又是什么,或者需要一直等待条件满足才开始下一个步骤,也要考虑超时都不满足条件需要走另一个步骤,根据条件也有可能会跳转回原来的步骤,这些逻辑通常都是很繁琐的(使用if-elseif、switch-case),而且写好后再次修改时,容易漏改忘改等造成逻辑不稳定问题;这里,我们介绍一种全新的实现逻辑的方式:通过流程图的原理去实现这些业务性的繁琐的逻辑。

Aflashstar的博客 8069

.Net控件的拖拽

<br />控件的拖拽从开始拖拽到拖拽完成共经过3个阶段,这3个阶段对应3个事件。<br />ItemDrag 用户开始拖拽时发生。<br />DragEnter 鼠标将某项拖动到该控件工作区域时发生<br />DragDrop 控件拖拽完成时发生。<br />下面, 我就以从Tree_View里将某个TreeNode拖拽到ListView中为例。<br />首先分析:会经历哪几个事件。<br />说明:My_TV 为TreeView My_LV为ListView<br />执行 顺序应为:My_TV_It

DaiLei831209的专栏 1363

android长按拖拽控件

要实现android长按拖拽控件,需要以下因素: 对于控件view,需要以下监听: 1.setOnDragListener() 2.setOnLongClickListener() 给控件view设置长按拖动,以一个imageView为例: 假设一个imageView已经被实例化了。 imageView.setOnLongClickListener(v -> { ...

skyang在路上 4634

Flutter拖拽控件Draggable

Draggable 最近做了一个Flutter项目,其中有一个需求是做出三个可以互相拖拽的任务列表,平时在做Android项目时,拖动的控件基本上都是自定义View来实现的,想看看在Fluter上大家都是怎么实现的,没想到flutter提供了一个非常方便的拖拽控件Draggable。 Draggable的构造函数 我个人在Flutter开发时,遇到没有见过的控件时,点开源码观察它的构造函数一定是了解它的功能的最优解,我们看Draggable的构造函数: const Draggable({ Key

E的博客 2599

iOS 通过UIPanGestureRecognizer实现控件悬浮拖拽

对控件添加拖拽手势 UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; [imageView addGestureRecognizer:pan]; //给图片控件添加手势 实现拖拽方法: - (voi...

培根芝士的专栏 1560

使用QT进行简单的控件拖拽

通过QT实现对控件的拖拽移动操作

weixin_43699794的博客 2810
上一篇: UI控件的初始显示状态与Service的存亡状态绑定
下一篇: 自定义不依赖于Activity的Toast
Coke可乐
博客等级 码龄10年 0粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值