位置: 编程技术 - 正文

多点触控(苹果多点触控)

编辑:rootadmin

推荐整理分享多点触控(苹果多点触控),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:多点触控有什么用,多点触控在哪里设置,多点触控有什么用,多点触控在哪里设置,多点触控在哪里设置,多点触控有什么用,多点触控有什么用,多点触控有什么用,内容如对您有帮助,希望把文章链接给更多的朋友!

1.要了解多点触控,我们必须先了解一下View的生命周期,毕竟在Android用的到多点触控的地方,一般都是自定义控件。就像Fragment和Activity都有生命周期一样,View也有自己的生命周期。该生命周期并不直接和展示它的Fragment或者Activity相连,相反,它和显示它的窗口状态已经渲染循环相关。

当视图被添加到View层次结构中时,第一个被回调的函数是View.onAttachedToWindow(),这标志着它现在可以加载所需的资源了,构建自定义视图时,开发者应该重载该方法,并在该方法中加载所有资源并初始化视图所需的依赖。基本上,所有耗时的初始化操作都应放在该方法中。

还有一个匹配的回调名为View.onDetachedFromWindow(),从View层次结构中移除视图时调用这个方法。在这里,你需要关注那些需要显式清理的操作,比如所有被加载的资源,启动的Service,或者其他依赖。

试图被添加到View层次结构中之后,它会经过一个循环,该循环首先计算动画,接下来会依次调用View.onMeasure(),View.onLayout(),View.onDraw()等方法。系统会确保这些方法每次都按完全相同的顺序被调用.

View的生命周期如下:

View.onAttachedToWindow()--->动画视图--->View.onMeasure()--->View.onLayout()--->View.onDraw()--->View.onDetachedFromWindow();

在onLayout()方法中,计算每个按键的大小和位置,在onDraw()方法中,应避免执行任何耗时的操作,而只关注实际的绘制,从而避免潜在的性能问题.onMeasure()一般配合onlayout一起使用。

当手指按下屏幕的时候系统会回调View的onTouchEvent();所以多点触控的大部分代码都写在该方法中.

2.多点触控

多点触控的基本方法和参数

public boolean onTouchEvent(MotionEvent event)

多点触控(苹果多点触控)

参数event:参数event为手机屏幕触摸事件封装类的对象,其中封装了该事件的所有信息,例如触摸的位置、触摸的类型以及触摸的时间等。该对象会在用户触摸手机屏幕时被创建。返回&#;:该方法的返回&#;机理与键盘响应事件的相同,同样是当已经完整地处理了该事件且不希望其他回调方法再次处理时返回true,否则返回false。

event.getAction() //获取触控动作比如ACTION_DOWNevent.getPointerCount(); //获取触控点的数量,比如2则可能是两个手指同时按压屏幕event.getPointerId(nID); //对于每个触控的点的细节,我们可以通过一个循环执行getPointerId方法获取索引event.getX(nID); //获取第nID个触控点的x位置event.getY(nID); //获取第nID个点触控的y位置event.getPressure(nID); //LCD可以感应出用户的手指压力,当然具体的级别由驱动和物理硬件决定的event.getDownTime() //按下开始时间event.getEventTime() // 事件结束时间event.getEventTime()-event.getDownTime()); //总共按下时花费时间

event.getActionIndex()//获取触摸手指的坐标ID也是上面的nID

event.getPointerCount()//获取有多少个手指按下

当然这里有个小小变化,在Android4.2以后,就基本不getAction获取触摸动作而是用event.getActionMasked()代替.

下面写一小段程序供参考:

public class MyView extends View {

public MyView(Context context) {super(context);}public MyView(Context context, AttributeSet attrs) {super(context, attrs);}public MyView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}@Overrideprotected void onAttachedToWindow() {super.onAttachedToWindow();}//因为举例简单起见,按照*的手机绘制的四个矩形@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);Paint paint = new Paint();paint.setColor(Color.RED);paint.setStyle(Style.STROKE);canvas.drawRect(0, 0, , , paint);canvas.drawRect(0, , , , paint);canvas.drawRect(0, , , , paint);canvas.drawRect(0, , , , paint);}//具体酷炫的操作都写在这里,比如以四个矩形为钢琴键,播放特定音效等等@Overridepublic boolean onTouchEvent(MotionEvent event) {int pointerCount = event.getPointerCount();//获取有多少个手指按下int actionIndex = event.getActionIndex();//获取手指按下的唯一索引int action = event.getActionMasked();//获取按键的特征int id = event.getPointerId(actionIndex);//获取索引if ((action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_POINTER_DOWN)) {Log.i("MyView", event.getX(actionIndex)&#;"-" &#; event.getY(actionIndex));}return true;}}

上面程序是不是少了一个onLayout()方法,没错,在此方法里面就可以根据特定手机绘制特定的图形,因为本文具体讲解多点触控,不在于介绍完整的实例故略过。

静态注册JNI和动态注册JNI AndroidJNI静态注册实例andriod的SDK中没有包括JNI的支持,而且对如何支持JNI也没有任何文档说明。不过既然整个android平台是开源的,我们可以通过Google发

深入了解android平台的jni---注册native函数 注册native函数有两种方法:静态注册和动态注册。1、静态注册方法根据函数名找到对应的JNI函数:Java层调用函数时,会从对应的JNI中寻找该函数,如果

Android 接口回调实例 Android接口回调方法处处涉及到,比如常用的Button点击事件就是一个接口回调,可见掌握熟练使用接口回调方法的重要性。接口回调的简单解释就是:比

标签: 苹果多点触控

本文链接地址:https://www.jiuchutong.com/biancheng/378122.html 转载请保留说明!

上一篇:获取已安装应用在/data/app目录下的apk安装包,并分享(获取已安装应用列表的权限在哪里设置)

下一篇:静态注册JNI和动态注册JNI(jni静态注册和动态注册)

  • 增值税专票开错了可以作废吗
  • 房地产企业环保税什么时候申报
  • 工程监理费开什么发票
  • 分期付款购买商品的会计分录
  • 货没出,发票先开
  • 对公账户发工资怎么操作
  • 没有收入的小规模纳税人可以无票入费用吗?
  • 无形资产资本化加计扣除可抵扣暂时性差异
  • 限制性股票科目
  • 固定资产的发票
  • 母公司收到的分红计入利润吗
  • 当月发货必须当月开票吗
  • 预收账款转为主营业务收入
  • 淘宝店注册公司流程
  • 交易性金融资产属于什么科目
  • 地税能不能查到个人的贷款行为?
  • 个人机械租赁怎么纳税
  • 个人之间的房屋抵押需要去房管局做登记吗
  • 银行利息所得税调整方案
  • 研发人员的社保可以加计扣除吗
  • 企业装修期间开工怎么办
  • 免征文化事业建设费条件的销售额标准
  • 购买所有物品都是可以退货吗
  • 购买办公桌会计分录
  • 出口退税 免税
  • 微软和google
  • 预计负债属于什么类
  • win10最新版本22h2激活
  • 销售合同怎么计算印花税
  • 最大的数码相机是多少寸
  • 返还保证金的法律依据
  • php数组有哪几种类型
  • 库存现金清查主要包括哪些内容
  • 委托开发软件如何入账
  • 收据中代收款凭证
  • vue3 ts知乎专栏
  • 小企业的费用包括生产成本吗
  • 其他综合收益什么类科目
  • 无形资产转让的最低收费额如何确定?
  • 简易计税办法计算的应纳税额可以抵扣吗
  • 其他应收款的会计分录有哪些
  • ajax 教程
  • 售后回购会计处理分录
  • 事业单位人员收受财物
  • 买手机手续费怎么算的
  • 混合销售行为的例子
  • 小企业需要做计算机吗
  • 企业内部控制的概念
  • 固定资产清理的借贷方向
  • 小规模公司累计增值税
  • 代垫电费收回开票吗
  • 统一机构信用代码最后一位校验码
  • 动迁补偿金
  • 费用发票已报销怎么入账
  • 什么叫递延收益和其他收益
  • 坏账准备贷方表示什么
  • 待抵扣增值税退税
  • 代开租金发票的税金怎样入账?
  • 建筑施工企业工程施工明细科目
  • 库存商品盘盈是什么意思
  • 招标付款条件及比例
  • 三栏式明细账适用于原材料吗
  • sqlmd5加密后解密
  • windowsserver2016安装完成后怎么是命令模式
  • windows server 2003 sp3
  • centos用途
  • win1021h2正式版
  • 批处理在windows中的典型应用
  • win10通知栏点击没反应
  • 开启win10
  • opengl的函数
  • opengl编程宝典
  • 简单阐述javascript的主要作用
  • Ver、Vol、Ctty命令的使用教程
  • cocos2dx3.2 xcode中资源路径设置问题
  • android FileNotFoundException(Is a Directory)解决办法
  • JQuery解析XML数据的几个简单实例
  • Android之fill_parent和wrap_content
  • 房产交契税网上可以交吗
  • 沈阳铁西区房产中介电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设