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

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

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

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

提前感谢任何提示!

解决方法:

使用路径绘制线条:

Path linePath;

Paint p;

RectF rectF;

float point1X, point1Y, point2X, point2Y;

// initialize components

// draw the line

linePath.moveTo(point1X, point1Y);

linePath.lineTo(point2X, point2Y);

canvas.drawPath(linePath, p);

linePath.computeBounds(rectF, true);

覆盖onTouchEvent(MotionEvent):

@Override

public 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,android-canvas

来源: https://codeday.me/bug/20191002/1844260.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值