位置: 编程技术 - 正文

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

编辑: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静态注册和动态注册)

  • 个税申报数是按应发数还是实发数进行申报?
  • 公司合同是公司员工个人名义签订如何入账?
  • 核定征收企业股权转让的个人所得税
  • 跨年度退货可以开红字发票吗
  • 房地产开发企业预缴增值税
  • 建筑业预缴税款是什么意思
  • 企业递延所得税费用的计算公式
  • 银行有误退款分录怎么写
  • 企业最应避免的外部环境和内部条件组合是
  • 由财政拨钱还银行借款怎么做分录?
  • 实收资本不到账如何做凭证
  • 一般纳税人存货采购成本包括
  • 企业所得税弥补亏损年限
  • 计提地税走哪个科目
  • 境外所得纳税
  • 个人所得税合并扣税
  • 危险废物处理原则
  • 工业企业预付材料款时一般应借记什么账户
  • 无法访问移动网络怎么办
  • 电子承兑汇票贴现怎么做账
  • 详谈php编码转换过程
  • 酒店的啤酒
  • 差额部分 扣除部分
  • 如何选购汽车
  • 捐赠与赞助
  • low是什么文件
  • 蜻蜓翅膀特写怎么画
  • 按下电源按钮时锁定计算机怎么弄
  • 发票金额与银行付款金额少几分钱
  • PHP:mcrypt_get_cipher_name()的用法_Mcrypt函数
  • 外企采购回扣普遍吗
  • 融资租赁会计处理小企业会计准则
  • 什么是重绘和回流
  • 仓库发货打包以及建议年终总结
  • 极速开票怎么打不开
  • 小规模纳税人开农产品免税发票
  • 公司车辆固定资产转移税
  • 不动产集体产权证什么意思
  • 报关单填写要求怎么填
  • 发票必须包含什么内容
  • 公司组织出国旅游很差吗
  • 弥补亏损账务处理流程
  • 高新企业必须做加计扣除吗
  • 代收代缴的水电费怎么开票
  • 新成立的公司能干吗
  • 工程材料如何管理
  • 发票联遗失的证明怎么开
  • 哪些企业可以减免企业所得税
  • 工程一直不办结算怎么办
  • 增值税普通发票可以跨区域开吗
  • 现代服务业包括哪些
  • sql server中触发器的作用是什么?
  • xp系统关机界面设置
  • windows server 2008 r2开启远程访问
  • userexperience是什么意思
  • CentOS系统中与时间的相关命令详解
  • spyagent4.exe - spyagent4是什么进程
  • 如何重设苹果手机的ID密码
  • win10怎样永久激活
  • nginx文件服务器
  • windows8c盘满了怎么清理
  • windows常用命令操作
  • node.js开发实战详解
  • 获取本地ip地址失败
  • 关于echo的名字
  • 定时软件有哪些
  • python socket编程教程
  • javascriptz
  • js正则表达式写法
  • 瀑布流 css
  • Python网络爬虫出现text没有属性怎么办
  • python的例子
  • 新疆税务局电子
  • 国家税务总局广东省税务局待遇
  • 上海税务发票自动抵扣
  • 百旺税控盘口令认证失败PiN被锁
  • 消费税要把增值税算进去吗
  • 国税系统重点领导名单
  • 地税局和税务局一样吗
  • 服饰类关税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设