1

我是新手,所以..如果我在不同的设备上有一个图像视图 10' 平板电脑 7' 平板电脑和一个 5' 的移动设备具有不同的密度。

我将如何通过触摸事件获得相应的 x,y 这里的“规则”是什么?

谢谢你

例如,当触摸图像视图上的花瓣时,图像是一朵花,x,y 的位置在所有密度和大小中都相同吗?

4

2 回答 2

0

您也可以使用 的宽度和高度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");
        }
    }
}
于 2017-05-22T00:19:20.277 回答
-1

您可以使用这样的触摸侦听器方法轻松地从触摸点获取视图的坐标,

@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;
        }
    });
}
于 2016-05-22T10:44:12.753 回答