Java 如何在ImageView中使用触摸获得实际图像坐标?
我想使用触摸功能在ImageView中获得图像的实际X和Y坐标 到目前为止,我只得到ImageView内的坐标,即800x600。我的图像通常会有更高的分辨率。我该怎么做 MainActivity.javaJava 如何在ImageView中使用触摸获得实际图像坐标?,java,android,image,events,touch,Java,Android,Image,Events,Touch,我想使用触摸功能在ImageView中获得图像的实际X和Y坐标 到目前为止,我只得到ImageView内的坐标,即800x600。我的图像通常会有更高的分辨率。我该怎么做 MainActivity.java private void addTouchListener(){ ImageView image = findViewById(R.id.result); image.setOnTouchListener(new View.OnTouchListener()
private void addTouchListener(){
ImageView image = findViewById(R.id.result);
image.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
float x = motionEvent.getX();
float y = motionEvent.getY();
String message = String.format("Coordinates: (%.1f, %.1f)", x, y);
Log.d(MainActivity.DEBUGTAG, message);
return false;
}
});
}
activity_main.xml
<ImageView
android:id="@+id/result"
android:layout_width="330dp"
android:layout_height="250dp"
android:layout_marginTop="150dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:scaleType="fitXY"
android:adjustViewBounds="true"
app:srcCompat="@drawable/leaf"
/>
您需要在图像视图宽度和实际图像宽度之间进行计算。高度也一样。你会发现这个答案很有帮助
Asume图像视图就像是最大图像中的摄像机位置xv、yv。 XinImage=xtouch+xv YinImage=ytouch+yv