Android如何实现多点触控功能
发表于:2024-10-09 作者:千家信息网编辑
千家信息网最后更新 2024年10月09日,本篇内容介绍了"Android如何实现多点触控功能"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用
千家信息网最后更新 2024年10月09日Android如何实现多点触控功能
本篇内容介绍了"Android如何实现多点触控功能"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
使用了Android的系统API实现了多点触控功能,多点触控对设备的硬件有一定的要求,目前市面上的手机几乎都能实现多点触控了。
实现多点触控最关键的API:
event.getPointerCount()
意思是这事件中包含的数据的指针的数量,总是大于或等于1。可以简单理解为放在手机屏幕上的手指的数目,为什么总是大于或等于1呢?因为触发事件需要用手指去触屏,一触屏必然产生一个指针。
重写这两个函数:
一:
public boolean onTouchEvent(MotionEvent event)
调用一个触屏事件,通过操作event完成触屏相关事件的处理。
上代码:
public boolean onTouchEvent(MotionEvent event) {// if(event.getX(1)==event.getX(0)&&event.getY(1)==event.getY(0)) if (event.getPointerCount() == 2) { x2 = event.getX(1); y2 = event.getY(1); } x1 = event.getX(0); y1 = event.getY(0); myView.invalidate(); Log.d("multiTouch", event.getPointerCount() + " xy1: " + x1 + ", " + y1 + " xy2: " + x2 + ", " + y2); return super.onTouchEvent(event); }
二:
protected void onDraw(Canvas canvas)
通过重写onDraw来画图,Canvas的意思是" holds the "draw" calls to draw something"(官方文档的介绍,觉得这话已经很通俗易懂了)
上代码:
protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawColor(Color.WHITE); Paint paint = new Paint(); paint.setAntiAlias(true); paint.setStyle(Paint.Style.FILL); paint.setColor(Color.BLUE); canvas.drawCircle(x1, y1, 30, paint); canvas.drawRect(x2 - 30, y2 - 30, x2 + 30, y2 + 30, paint); paint.setColor(Color.RED); canvas.drawLine(x1, y1, x2, y2, paint); Shader mShader = new LinearGradient(0, 0, 100, 100, new int[] { Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW }, null, Shader.TileMode.REPEAT); paint.setShader(mShader); paint.setTextSize(14); canvas.drawText("xy1: " + x1 + "; " + y1, 80, 50, paint); canvas.drawText("xy2: " + x2 + "; " + y2, 80, 120, paint); }
实现onDraw时需要在继承自View的一个类中完成
private class TestView extends View{ public TestView(Context context) { super(context); } ......}
完成以上操作以后主程序就简单了,初始化然后调用之前写好的代码
public class multiTouch extends Activity{ public float x1, x2, y1, y2; private TestView testView; @Override public void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); x1 = 30; y1 = 30; x2 = 200; y2 = 30; super.onCreate(savedInstanceState); testView = new TestView(this); setContentView(testView); }
实现效果图
圆圈代表第一次触屏时的手指,正方形表示第二次触屏时的手指。
"Android如何实现多点触控功能"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
多点
事件
手指
功能
上代
内容
意思
手机
指针
更多
知识
实用
通俗
学有所成
接下来
两个
主程序
代码
代表
关键
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
游戏服务器租用需要多少钱
计算机网络与网络安全的区别
网络安全法要实名吗
杭州流程管理软件开发
手机一直出现连接不上服务器
数据库英语怎么说dais
服务器做店群
嘉兴电脑软件开发项目
浑源口碑好的网络安全答疑解惑
百度云代理服务器
苹果软件开发怎么申请
数据库是独立的还是共享的
阿里云服务器 端口
华辰泰尔软件开发
预存话费软件开发
旁氏网络安全吗
普通计算机可以当服务器么
华为服务器出售河南国资委
中顺互联网科技
博爱软件开发专业
服务器清空生命周期日志
软件开发 时间比例
大连市信为软件开发有限公司
聊天软件开发常见问题
三维力控数据库组态
服务器基础维护
英雄联盟重新登陆无法连接服务器
成都软件开发工程师培训
晋城网络安全部门
武汉大学网络安全专业课教材