如何在Android中的图像上创建自定义点击形状?

我想创建一个可点击的图像,我的图像中有一些不同的可点击部分,如下所示:

我想绘制一个自定义的形状,如:A,B,C,D,E,F,并确保当用户点击这件事时。 问题是我没有任何想法,如何创建形状像图像中的形状,确保它只是固定在图像上,在不同的屏幕尺寸不会看到一个混乱的东西。

会不会有很多这样的图像?

如果不是,我建议你为每个区域创建遮罩图像,其中图像的黑色部分代表区域,白色部分排除rest。

要绘制图像:

  • 创建自定义视图
  • 在构造函数中不要忘记使用setWillNotDraw为true,这样你就可以进行自定义绘图
  • 覆盖View.onDraw方法,您可以通过setColorFilter绘制主图像和所有其他filter 。

要处理点击事件:

  • 覆盖onTouchEvent方法
  • 得到触摸位置
  • 比较触摸位置与蒙版图像中的点颜色

优化:

  • 创建一个缩放因子缩小的掩模图像
  • 在比较期间按比例因子划分触摸位置

这不是理想的,但我认为使用向量的解决方案并非易事

将其作为图像和setOnclickListner作为该图像