【发布时间】:2019-12-13 10:39:52
【问题描述】:
我在图像视图上有一个矢量/PNG 图像。我需要跟踪用户在图像上触摸的位置并标记点。我已经完成了这部分。但我面临一个问题。由于图像形状不规则,图像和图像视图(矩形)边界之间存在空间。
如果用户触摸图像视图而不是图像(即)边界之间的空间,则不应标记这些点。有没有办法做到这一点 ?
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
modelWidth = selected_Car_Image.getWidth();
modelHeight = selected_Car_Image.getHeight();
float xTouchCoordinate = motionEvent.getX();
float yTouchCoordinate = motionEvent.getY();
return false;
}
});
}
<RelativeLayout
android:id="@+id/carImageViewLayout"
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_centerHorizontal="true">
<ImageView
android:id="@+id/imageView"
android:layout_width="200dp"
android:layout_height="400dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
</RelativeLayout>
当用户触摸时,我使用 xTouchCoordinate 和 yTouchCoordinate 绘制一个点。
在这个例子中,我不想跟踪用户在笔记本电脑外点击的任何点。但如果用户点击笔记本电脑,我需要这些点。
【问题讨论】:
-
你能添加你的代码吗?
-
用代码更新了问题
-
请添加视图 xml,如果可能的话,添加实际图像 :) 您可以随时在您的设备上制作屏幕截图,并在开发人员选项中启用“显示视图边界”,这将极大地帮助我们回答您的问题。
-
@kolboc 我已经更新了问题
标签: android android-layout imageview touch-event touchimageview