簡體   English   中英

如何在Android中的不同設備和密度上獲取imageview的x,y坐標

[英]How to get x,y coordinates of an imageview on different devices and densities in Android

我是新來的..如果我在不同設備的10'平板電腦7'平板電腦和5'具有不同密度的手機上有imageview,

我如何通過觸摸事件獲取相應的x,y,這里的“規則”是什么?

謝謝

例如,圖像是一朵花,當觸摸圖像視圖上的花的花瓣時,x,y的位置在所有密度和大小上都相同嗎?

您可以使用這樣的觸摸偵聽器方法輕松地從觸摸點獲取視圖的坐標,

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

您還可以使用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");
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM