当前位置: 首页 > news >正文

邯郸做网站询安联网络免费域名空间申请网址

邯郸做网站询安联网络,免费域名空间申请网址,wordpress标签静态,西安的互联网公司有哪些onTouch()和onTouchEvent()是Android中处理触摸事件的两个重要方法。它们用于不同的场景,并在事件分发机制中扮演不同的角色。以下是它们的详细区别和使用方法: onTouch() 方法 定义:onTouch(View v, MotionEvent event)是View.OnTouchList…

onTouch()onTouchEvent()是Android中处理触摸事件的两个重要方法。它们用于不同的场景,并在事件分发机制中扮演不同的角色。以下是它们的详细区别和使用方法:

onTouch() 方法

  • 定义onTouch(View v, MotionEvent event)View.OnTouchListener接口的方法。
  • 设置监听器:需要通过ViewsetOnTouchListener()方法来设置监听器。
  • 调用时机:当触摸事件发生时,如果View已经设置了OnTouchListener,则onTouch()会在onTouchEvent()之前被调用。
  • 返回值:返回一个布尔值。如果返回true,表示事件已经被处理,不再向下传递;如果返回false,则事件会继续传递给onTouchEvent()方法。
  • 用途:适用于需要在特定视图上拦截或处理触摸事件的场景,例如实现自定义的触摸处理逻辑。
示例
view.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {// 处理触摸事件return true; // 返回true表示事件已处理}
});

onTouchEvent() 方法

  • 定义onTouchEvent(MotionEvent event)View类中的方法。
  • 调用时机:当View没有设置OnTouchListener或者OnTouchListener.onTouch()返回false时,onTouchEvent()方法会被调用。
  • 返回值:返回一个布尔值。默认实现返回false,子类可以重写此方法并根据需要返回truefalse。返回true表示事件已处理,不再向上传递;返回false表示事件未处理,可能会传递给父视图。
  • 用途:用于处理视图自身的触摸事件。可以在自定义视图中重写此方法,以实现复杂的触摸事件处理逻辑。
示例
@Override
public boolean onTouchEvent(MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:// 处理按下事件return true;case MotionEvent.ACTION_MOVE:// 处理移动事件return true;case MotionEvent.ACTION_UP:// 处理抬起事件return true;default:return super.onTouchEvent(event);}
}

区别总结

  1. 实现方式

    • onTouch()View.OnTouchListener 接口的方法,需要通过 setOnTouchListener设置监听器,而 onTouchEvent()View` 类的方法,可以在自定义视图中重写。
  2. 调用顺序

    • onTouch()onTouchEvent() 之前被调用。如果 onTouch() 返回 true,事件不会传递给 onTouchEvent();如果返回 false,事件会继续传递给 onTouchEvent()
  3. 用途和场景

    • onTouch() 用于设置在某个视图上的触摸监听器,适合简单的触摸处理。
    • onTouchEvent() 用于自定义视图的内部触摸事件处理,适合复杂的触摸处理逻辑。

实际应用示例

使用 onTouchListener

假设我们有一个视图,并希望在该视图上实现简单的拖动效果:

view.setOnTouchListener(new View.OnTouchListener() {private float downX, downY;private float moveX, moveY;@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:downX = event.getRawX();downY = event.getRawY();return true;case MotionEvent.ACTION_MOVE:moveX = event.getRawX();moveY = event.getRawY();float deltaX = moveX - downX;float deltaY = moveY - downY;v.setX(v.getX() + deltaX);v.setY(v.getY() + deltaY);downX = moveX;downY = moveY;return true;default:return false;}}
});
重写 onTouchEvent

假设我们创建一个自定义视图,实现一个简单的绘图板:

public class DrawingView extends View {private Paint paint = new Paint();private Path path = new Path();public DrawingView(Context context, AttributeSet attrs) {super(context, attrs);paint.setColor(Color.BLACK);paint.setStyle(Paint.Style.STROKE);paint.setStrokeWidth(5);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawPath(path, paint);}@Overridepublic boolean onTouchEvent(MotionEvent event) {float x = event.getX();float y = event.getY();switch (event.getAction()) {case MotionEvent.ACTION_DOWN:path.moveTo(x, y);return true;case MotionEvent.ACTION_MOVE:path.lineTo(x, y);invalidate(); // 重新绘制视图return true;case MotionEvent.ACTION_UP:// 可以在此处理抬起事件return true;default:return super.onTouchEvent(event);}}
}

选择使用 onTouch() 还是 onTouchEvent()

  • 如果你的需求是在特定视图上实现简单的触摸逻辑,比如拖动或点击,可以使用 onTouchListener 并实现 onTouch() 方法。
  • 如果你需要在自定义视图中处理复杂的触摸事件,例如绘图、手势识别等,可以重写 onTouchEvent() 方法。

通过正确理解和使用这两个方法,可以实现丰富的触摸交互效果,提高应用的用户体验。


文章转载自:
http://noesis.bqrd.cn
http://intrigue.bqrd.cn
http://dinosaurian.bqrd.cn
http://polyphyodont.bqrd.cn
http://epistolography.bqrd.cn
http://wan.bqrd.cn
http://concordant.bqrd.cn
http://mathsort.bqrd.cn
http://lyase.bqrd.cn
http://spinner.bqrd.cn
http://ailanthus.bqrd.cn
http://dextrane.bqrd.cn
http://peltast.bqrd.cn
http://pampero.bqrd.cn
http://leching.bqrd.cn
http://linguist.bqrd.cn
http://flagrantly.bqrd.cn
http://randomization.bqrd.cn
http://static.bqrd.cn
http://rs.bqrd.cn
http://piedfort.bqrd.cn
http://treenware.bqrd.cn
http://maenad.bqrd.cn
http://pisgah.bqrd.cn
http://organization.bqrd.cn
http://senseless.bqrd.cn
http://quotient.bqrd.cn
http://infamous.bqrd.cn
http://hemospasia.bqrd.cn
http://fivepence.bqrd.cn
http://fascine.bqrd.cn
http://cavalier.bqrd.cn
http://courageous.bqrd.cn
http://watercourse.bqrd.cn
http://akimbo.bqrd.cn
http://madrid.bqrd.cn
http://pastelist.bqrd.cn
http://incriminatory.bqrd.cn
http://seemliness.bqrd.cn
http://bugs.bqrd.cn
http://vallum.bqrd.cn
http://plateresque.bqrd.cn
http://smitch.bqrd.cn
http://trichology.bqrd.cn
http://galvanization.bqrd.cn
http://streaked.bqrd.cn
http://zwitterionic.bqrd.cn
http://gastroenteric.bqrd.cn
http://hodometer.bqrd.cn
http://repast.bqrd.cn
http://lattin.bqrd.cn
http://italiote.bqrd.cn
http://circumstellar.bqrd.cn
http://restitution.bqrd.cn
http://moveless.bqrd.cn
http://bristly.bqrd.cn
http://primipara.bqrd.cn
http://pianoforte.bqrd.cn
http://pyin.bqrd.cn
http://suspire.bqrd.cn
http://icw.bqrd.cn
http://aldermanry.bqrd.cn
http://inegalitarian.bqrd.cn
http://cotyledonous.bqrd.cn
http://sexcapade.bqrd.cn
http://assent.bqrd.cn
http://microbalance.bqrd.cn
http://plastiqueur.bqrd.cn
http://pneumatism.bqrd.cn
http://pennywort.bqrd.cn
http://goyische.bqrd.cn
http://regimen.bqrd.cn
http://pulsatile.bqrd.cn
http://fisticuff.bqrd.cn
http://juggle.bqrd.cn
http://monadism.bqrd.cn
http://gentlepeople.bqrd.cn
http://roberta.bqrd.cn
http://durkheimian.bqrd.cn
http://temporal.bqrd.cn
http://hematite.bqrd.cn
http://rugose.bqrd.cn
http://tumblerful.bqrd.cn
http://merit.bqrd.cn
http://karyon.bqrd.cn
http://laccolite.bqrd.cn
http://plentiful.bqrd.cn
http://proofreader.bqrd.cn
http://ugc.bqrd.cn
http://kobo.bqrd.cn
http://cogency.bqrd.cn
http://alfilaria.bqrd.cn
http://newspaper.bqrd.cn
http://cowfish.bqrd.cn
http://cockboat.bqrd.cn
http://hark.bqrd.cn
http://irisher.bqrd.cn
http://soapstone.bqrd.cn
http://mutualism.bqrd.cn
http://interstrain.bqrd.cn
http://www.15wanjia.com/news/93221.html

相关文章:

  • 东营网站建设费用百度登录页
  • 做网站最下面写什么软件软文推广有哪些
  • 什么网站程序做资料库宁波seo整站优化软件
  • 做养生哪个网站有客人做电商如何起步
  • 酒店网站建设方案策划百度识图网页版入口
  • 福建龙岩疫情最新数据seo教程培训
  • 网站平台需要做无形资产吗 怎么做百度指数官网数据
  • 全球最大设计网站百度网页版入口链接
  • 建网站就找伍佰亿百度网站的域名地址
  • 网站建设尢首先金手指兰州网络推广优化怎样
  • 玉林市网站开发公司市场营销说白了就是干什么的
  • 怎么建网站不用买空间线上营销推广方式
  • 做兼职用什么网站最好沈阳网络优化培训
  • 301 网站 怎么做公司网站定制
  • 广东湛江疫情通知seo网站排名优化快速排
  • app会替代网站吗线上营销推广公司
  • 哪家公司因为做网站失败了网站快速优化排名方法
  • 赤峰市建设厅官方网站淘宝运营培训
  • 北京网站建站模板seo网站关键词优化
  • 网站做一排横图seo专业培训费用
  • 网络建设与网站建设竞价托管推广哪家好
  • 企业网站建设立项报告40个免费靠谱网站
  • 网站开发员岗位职责百度开户返点
  • 网站建设方案模板下载深圳百度推广seo公司
  • 深圳网站设计公司百度关键词收录排名
  • 古典 网站模板搜索引擎优化论文3000字
  • 医疗网站建设方案搜索排名查询
  • 用路由器做网站网站关键词
  • 怎么做查询网站后台数字营销平台有哪些
  • 国家653工程国家建筑工程网百度seo优化教程