我是新手,所以..如果我在不同的设备上有一个图像视图 10' 平板电脑 7' 平板电脑和一个 5' 的移动设备具有不同的密度。
我将如何通过触摸事件获得相应的 x,y 这里的“规则”是什么?
谢谢你
例如,当触摸图像视图上的花瓣时,图像是一朵花,x,y 的位置在所有密度和大小中都相同吗?
我是新手,所以..如果我在不同的设备上有一个图像视图 10' 平板电脑 7' 平板电脑和一个 5' 的移动设备具有不同的密度。
我将如何通过触摸事件获得相应的 x,y 这里的“规则”是什么?
谢谢你
例如,当触摸图像视图上的花瓣时,图像是一朵花,x,y 的位置在所有密度和大小中都相同吗?
您也可以使用 的宽度和高度ImageView
,这是不同密度的变化。然后询问图像的百分比,例如,上半部分或下半部分。(1024 的 75% 是 1024*0.75)
@Override
public boolean onTouch(View v, MotionEvent event) {
int maxX = v.getWidth();
int maxY = v.getHeight();
int x = (int) event.getX();
int y = (int) event.getY();
if (action == MotionEvent.ACTION_DOWN) {
if (x > (maxX * 0.25) && x < (maxX * 0.50) && y > (maxY * 0.25) && y < (maxY * 0.50)) {
Log.i("Tag", "You pressed an area");
}
}
}
您可以使用这样的触摸侦听器方法轻松地从触摸点获取视图的坐标,
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ImageView imageView = findViewById(R.id.imageView);
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("Tag", "X,Y : " + event.getX() + "," + event.getY());
return true;
}
});
}