android– 使画布drawLine()可点击的技巧?

android– 使画布drawLine()可点击的技巧?,第1张

概述我正在开发一个在地图上绘制节点的应用程序,每个节点都有由它们之间的线表示的边.我使用Canvas和drawLine()绘制了边缘,但如果线条本身可以点击则会很有用.我的意思是一种允许用户触摸线路或认为他们正在触摸线路并且事件可以触发的方法.(如显示边缘信息等…)我无法正确地将触摸

我正在开发一个在地图上绘制节点的应用程序,每个节点都有由它们之间的线表示的边.我使用Canvas和drawline()绘制了边缘,但如果线条本身可以点击则会很有用.我的意思是一种允许用户触摸线路或认为他们正在触摸线路并且事件可以触发的方法. (如显示边缘信息等…)

我无法正确地将触摸事件附加到我用Canvas绘制的线上,因此我想将ImageVIEw放置在绘制的每条边线的两端之间. ImageVIEw可以是一个点,因此可以清楚触摸事件触发的位置.

有没有人有任何其他建议?我主要是在寻找我错过的想法.也许Android API中有一些东西可以帮助解决这个问题,我不知道.

提前感谢任何提示!

@H_502_8@解决方法:

使用路径绘制线条:

Path linePath;Paint p;RectF rectF;float point1X, point1Y, point2X, point2Y;// initialize components// draw the linelinePath.moveto(point1X, point1Y); linePath.lineto(point2X, point2Y);canvas.drawPath(linePath, p);linePath.computeBounds(rectF, true);

覆盖ontouchEvent(MotionEvent):

@OverrIDepublic boolean ontouchEvent(MotionEvent event) {    float touchX = event.getX();    float touchY = event.getY();    switch (event.getAction()) {    case MotionEvent.ACTION_DOWN:        if (rectF.contains(touchX, touchY)) {            // line has been clicked        }        break;    }    return true;}
总结

以上是内存溢出为你收集整理的android – 使画布drawLine()可点击的技巧?全部内容,希望文章能够帮你解决android – 使画布drawLine()可点击的技巧?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1099506.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存