我是新手,所以..如果我在不同的设备10'平板电脑7'平板电脑和5'不同密度的手机上有一个imageview。
我将如何通过触摸事件获取相应的x,y这里的“规则”是什么?
谢谢
例如,当在图像视图上触摸花瓣时,图像是花朵,x,y的位置在所有密度和大小中是相同的吗?
答案 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");
}
}
}