android控件拖动,移动、解决父布局重绘时控件回到原点
最近公司做小游戏开发,写倒计时加进度条 拖动问题private boolean isIntercept = false; /** 按下时的位置控件相对屏幕左上角的位置X */ private int startDownX; /** 按下时的位置控件距离屏幕左上角的位置Y */ private int startDownY; /** 控件相对屏幕左上角移动的位置X */ private int lastMoveX; /** 控件相对屏幕左上角移动的位置Y */ private int lastMoveY;
vsv_show.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {int action = event.getAction();switch (action) {case MotionEvent.ACTION_DOWN:startDownX = lastMoveX = (int) event.getRawX();startDownY = lastMoveY = (int) event.getRawY();break;case MotionEvent.ACTION_MOVE:int dx = (int) event.getRawX() - lastMoveX;int dy = (int) event.getRawY() - lastMoveY;int left = v.getLeft() + dx;int top = v.getTop() + dy;int right = v.getRight() + dx;int bottom = v.getBottom() + dy;if (left < 0) {left = 0;right = left + v.getWidth();}if (right > mScreenWidth) {right = mScreenWidth;left = right - v.getWidth();}if (top < 0) {top = 0;bottom = top + v.getHeight();}if (bottom > mScreenHeight) {bottom = mScreenHeight;top = bottom - v.getHeight();}v.layout(left, top, right, bottom);lastMoveX = (int) event.getRawX();lastMoveY = (int) event.getRawY();break;case MotionEvent.ACTION_UP:int lastMoveDx = Math.abs((int) event.getRawX() - startDownX);int lastMoveDy = Math.abs((int) event.getRawY() - startDownY);if (0 != lastMoveDx || 0 != lastMoveDy) {isIntercept = true;} else {isIntercept = false;}RelativeLayout.LayoutParams lpFeedback = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);lpFeedback.leftMargin = v.getLeft();lpFeedback.topMargin = v.getTop();lpFeedback.setMargins(v.getLeft(), v.getTop(), 0, 0);v.setLayoutParams(lpFeedback);break;}return isIntercept;} });
android控件拖动,移动、解决父布局重绘时控件回到原点相关推荐
- android 父控件的背景_android控件拖动,移动、解决父布局重绘时控件回到原点
/** * * @description 设置意见反馈,用以灰度发布 * @author zhongwr * @params * @update 2016年1月12日 下午5:36:07 */ pri ...
- winform控件大小改变是防止背景重绘导致的闪烁
在工作中需要做一个伸缩控件,这个自定义控件继承于Panel.这个伸缩控件分为两个部分,头部是一个自定义组件,伸缩控件的背景为灰色,头部背景要求白色.伸缩控件在点击按钮时会重绘,同时他内部的控件也会重绘 ...
- `QStyle`自定义重绘`QSlider`控件
简介: 根据QStyle的继承关系和重绘原理:通过实现一个继承QCommonStyle类的实现,实现自己的自定义控件QSlider控件. 文章目录 本博文的简述or解决问题? 系列博文: 运行效果: ...
- c#-winform重绘Tabcontrol控件,标签带Logo图标
模仿网页浏览器标签重绘Tabcontrol控件,每个标签页左上角的Logo图标可以自定义,当然图标也可以挪到右边,直接上图.
- 重绘MenuStrip 控件
重绘MenuStrip控件 效果如图: 首先添加 CustomProfessionalRenderer类 用于重绘控件菜单样式 /// <summary>/// 自定义MenuStrip ...
- Android让VideoView填充满屏幕/父布局并保证不变形
在Android中简单的播放一下视频选用VideoView是一个不错的选择,各个厂商在出厂的时候一般都会测试视频播放,这个兼容性一般都能得到保证,而且使用VideoView播放会自动的纠正视频角度,但 ...
- QStyle自定义重绘QRubberBand控件
简介: 根据QStyle的继承关系和重绘原理:通过实现一个继承QCommonStyle类的实现,实现自己的自定义控件QRubberBand控件. 文章目录 本博文的简述or解决问题? 运行效果: QR ...
- android 瀑布流 空白,Android瀑布流优化,解决Recyclerview展示大批量图片时Item自动切换、闪烁、空白等问题...
本文涉及的代码案例可以在下方的链接中找到,如果对你有帮助,请给个Star(#^.^#) 问题分析 这段时间业务需求用到RecyclerView瀑布流加载并展示大批量图片,但一开始单纯使用Recycle ...
- android自定义view流布局,Android控件进阶-自定义流式布局和热门标签控件
一.概述: 在日常的app使用中,我们会在android 的app中看见 热门标签等自动换行的流式布局,今天,我们就来看看如何 自定义一个类似热门标签那样的流式布局吧 类似的自定义换行流式布局控件.下 ...
最新文章
- 用二项逻辑斯蒂回归解决二分类问题
- java设计模式(六)--观察者模式
- Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
- Fields of Mathematics
- Linux系统下授权MySQL账户访问指定数据库和数据库操作
- 2014广东高考分数线
- 你们和父亲关系怎么样?
- 含重根的三阶实对称矩阵的快速对角化方法
- 基于角色得后台权限管理系统设计(一、表设计)
- Rust编程语言入门教程(二)-核心概念(所有权(Ownership) 和生命周期)、变量声明(遍历数组)
- 使用Xbox360手柄控制你的turtlebot/rbx1/mrobot小车机器人
- 欧奈尔RPS曲线的编制方法及常见问题解答
- QQ等级:QQ在线等级说明
- Shader内置函数(方便自己看)
- uni-app的video禁止快进及seek()上的小坑
- 最全的monkey测试过程及分析
- Git操作流程(非常详细)
- Postman批量运行
- Windows命令行查看文件的MD5
- Unlawfully wed 小小新娘 | 经济学人中英双语对照精读笔记
热门文章
- SpringBatch 配置并行启动Job详解 (八)
- Hadoop集群添加新节点正确操作步骤
- deepin关闭ACPI
- docker安装mysql及相关配置、运行细节和常见报错解决方案
- python3导入特定的成员
- synchronized的可重入怎么实现的
- AngularJS基于MVC的复杂操作案例
- SpringBoot项目下resources文件夹下的静态资源浏览器无法访问
- IDEA springboot项目中properties配置文件 {针对将对应GBK改为UTF-8并勾选转为ASCII后仍无效情况} 运行时中文乱码解决
- dll文件用什么语言编写_零基础学习markdown标记语言语法,十分简单便捷编写markdown文件...