我正在研究一個應用程序,該應用程序具有一堆用戶可以拖動的小圖片的畫布以及用戶將從中拖出以創建新圖片的「框」對象或拖動現有的圖像,它會將其刪除。如何檢測何時觸摸drawable
檢測用戶是否觸摸了某個區域或屏幕上的圖像的最佳方法是什麼?首先想到的是顯然比較觸摸座標與每個對象的座標,但這似乎有點麻煩。有更好的,還是內置的?
感謝
我正在研究一個應用程序,該應用程序具有一堆用戶可以拖動的小圖片的畫布以及用戶將從中拖出以創建新圖片的「框」對象或拖動現有的圖像,它會將其刪除。如何檢測何時觸摸drawable
檢測用戶是否觸摸了某個區域或屏幕上的圖像的最佳方法是什麼?首先想到的是顯然比較觸摸座標與每個對象的座標,但這似乎有點麻煩。有更好的,還是內置的?
感謝
的View類Android有一個onClickListener您可以使用,當用戶點擊一個視圖來檢測。如果你實現你的'圖像'(就像你稱之爲視圖一樣),你可以簡單地向每一個添加一個點擊監聽器來查找被點擊的視圖。添加這樣的聽衆:
// Get a reference to the view from xml (or if you
// have created it dynamically, just use that)
View imageView = findViewById(R.id.my_view);
imageView.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// Do stuff with view (the View v that is passed is the View that was touched)
doStuff(v);
}
});
這取決於你的界面是多麼複雜,但基本上如果重寫onTouchEvent
,將讓你你指的座標。
爲了找到所觸及的內容,不經過每個對象,都可以找到方法來簡化它,例如將屏幕分成8個網格,並知道每個對象所在的網格,所以當觸摸屏幕時,您可以找到可能位於該網格中的對象,因此您將看到的項目更少。
有關如何使用onTouchEvent
一個簡短的回答,你可以看看:
http://androidforums.com/android-games/210019-touch-event-image-made-canvas.html
是否有一個原因,你是通過`ImageView`使用cusom視圖類? – schwiz 2010-11-27 03:38:10