如何在Android

时间:2016-05-22 10:16:16

标签: android android-imageview android-touch-event

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

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

谢谢

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

2 个答案:

答案 0 :(得分:0)

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

@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;
        }
    });
}

答案 1 :(得分: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");
        }
    }
}