控件跟随手指移动(心得)

        /**
	 * 初始坐标
	 *
	 * 都是相对于控件本身的坐标
	 *
	 * x y 手指按下的坐标
	 */
	private float x = 0, y = 0;

	@Override
	public boolean onTouchEvent(MotionEvent event) {
		// 手指按下的坐标
		float downX = 0, downY = 0;
		// 移动后的坐标 改变的值
		float moveX = 0, moveY = 0, changeX = 0, changeY = 0;
		switch (event.getAction() & MotionEvent.ACTION_MASK) {
		case MotionEvent.ACTION_DOWN:
			downX = event.getX();
			downY = event.getY();
			x = event.getX();
			y = event.getY();
			break;
		case MotionEvent.ACTION_MOVE:
			moveX = event.getX();
			moveY = event.getY();
			changeX = moveX - downX;
			changeY = moveY - downY;
			//this.getX()  this.getY() 是在父控件的坐标
			float currentX = this.getX() + changeX - x;
			float currentY = this.getY() + changeY - y;
			this.setX(currentX);
			this.setY(currentY);
			// 将移动后的坐标置为按下的位置
			downX = moveX;
			downY = moveY;
			break;
		}
		return true;
	}

  

时间: 2024-12-15 15:11:22

控件跟随手指移动(心得)的相关文章

DataGridView中内置控件常用事件使用心得

checkbox,button,imagebutton使用dataGridView1_CellContentClick private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { tb.Text+=string.Format("\r\n{0},Row:{1},Column:{2}","单元格内容单击!",e.RowIndex,e.ColumnInd

C# 窗体控件跟随窗体大小自动调节

测试目的:如何使得窗体内的控件可以跟随窗体大小自动调节 测试环境:WIN10 ENT + VS2015 方法原理:记录初始时窗口大小.控件大小等信息.每当窗口大小变化时,计算窗口大小相对于初始时的缩放比例,然后根据缩放比例再调整控件的位置(Location).大小(Size).字体大小(Font.Size). C#主要测试代码: using System; using System.Drawing; using System.Windows.Forms; namespace TEST1111 {

(转)Winform下的地图开发控件(GMap.NET)使用心得

最进做项目要涉及到地图开发有关的知识,看到了很好的一篇博文,和大家分享下. 我们先看看GMap.NET的定义: GMap.NET是一个强大.免费.跨平台.开源的.NET控件,它在Windows Forms 和WPF环境中能够通过Google, Yahoo!, Bing, OpenStreetMap, ArcGIS, Pergo, SigPac等实现寻找路径.地理编码以及地图展示功能,并支持缓存和运行在Mobile环境中. GMap.NET是一个开源的GEO地图定位和跟踪程序.就像谷歌地图.雅虎地

View控件跟随鼠标移动

public boolean onTouch(View view, MotionEvent motionEvent) { if(motionEvent.getAction() == MotionEvent.ACTION_DOWN){ //记录按下时的数据 sx = (int) motionEvent.getRawX(); sy = (int) motionEvent.getRawY(); origin_l = view.getLeft(); origin_r = view.getRight();

获取键盘移动动画,制作控件跟随特效。

此文为转载.仅供收藏 //收到键盘弹出通知后的响应 - (void)keyboardWillShow:(NSNotification *)info { //保存info NSDictionary *dict = info.userInfo; //得到键盘的显示完成后的frame CGRect keyboardBounds = [dict[UIKeyboardFrameEndUserInfoKey] CGRectValue]; //得到键盘弹出动画的时间 double duration = [di

老猪带你玩转自定义控件三——sai大神带我实现ios 8 时间滚轮控件

ios 8 的时间滚轮控件实现了扁平化,带来很好用户体验,android没有现成控件,小弟不才,数学与算法知识不过关,顾十分苦恼,幸好在github上找到sai大神实现代码,甚为欣喜,顾把学习这个控件点滴记录下来,分享给大家.项目原地址https://github.com/saiwu-bigkoo/Android-PickerView. ios 8 滚轮的效果: 而sai大神控件的效果: 哎,妈呀是不是效果95%相识啊. 好了,废话少说,谈谈我从这个控件中收获的心得. 首先,我们要高瞻远瞩看一下

C#鼠标控制控件移动的示例

//鼠标点击控件按住不放,控件跟随移动.施放则不移动 //这里的控件可以更换为其他控件. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Test { publ

开关控件(可随手指移动)的

开关 1.继承View 2.测量宽高,等于背景图片的宽高 3.绘制自己,背景+滑动块 4.处理触摸事件,让滑动块随手指移动 1.继承View public class ToggleButton extends View { public ToggleButton(Context context, AttributeSet attrs) { super(context, attrs); } } 2.测量宽高,等于背景图片的宽高 public class ToggleButton extends V

前端心得---仿IOS拾取器控件(转轮控件)

希望做一个类似IOS拾取器的控件,在IOS上该控件的效果是这样的:,我也把该效果称之为为轮子效果. 要实现这个效果,能够用到的技术点非常简单,无非是transform的translate3d和rotate,不过要想很好的实现,还要建立一个精确的数学模型,来解决如何[摆放]的问题.特别是这个效果不是静态的,需要满足鼠标滑动的时,这个轮子要转起来,这就需要仔细思索了.当然,在最开始重点还是要搞清楚自变量是什么.因变量是什么.它们之间的关系是什么以及该需求的一些性质.找到了好的性质,可以减轻工作量,并