我對我的活動有幾個ImageView,用戶可以在屏幕上移動。我如何識別用戶實際選擇哪個ImageView?在Xcode中,我可以爲每個ImageView分配一個唯一的標籤,並且比onTouch獲取標籤編號。 Android上有類似的方法嗎?Android:如何通過標記或標識識別ImageView
這是Xcode中:
UITouch *touch = [[event allTouches] anyObject];
if ([touch view].tag == 901)
{
iTouchObject = 901;
[self.view bringSubviewToFront:imgRojo1];
}
在Android中活動我迄今所做的:在我的onCreate可以將ID分配給每個ImageView的
ImageView selImage = (ImageView)findViewById(R.id.i904);
selImage.setId(904);
和onTouch.MOVED我可以使用帶有直接分配ID的ImageView。在這種情況下,圖像在屏幕上的手指下平滑移動。
iID = 904;
ImageView selImage = (ImageView)findViewById(iID);
但是,如何從用戶觸摸的ImageView中獲取ID?
我曾嘗試使用setOnTouchListener:
ImageView selImage = (ImageView)findViewById(R.id.i904);
selImage.setId(904);
selImage.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
iID = v.getId();
ImageView selImage = (ImageView)findViewById(iID);
int eventaction = event.getAction();
int X = (int)event.getX();
int Y = (int)event.getY();
switch (eventaction) {
case MotionEvent.ACTION_DOWN: // touch down so check if the finger is on a ball
break;
case MotionEvent.ACTION_MOVE: // touch drag with the ball
// move the balls the same as the finger
selImage.setX(X-25);
selImage.setY(Y-25);
break;
case MotionEvent.ACTION_UP:
// touch drop - just do things here after dropping
break;
}
// redraw the canvas
return true;
}});
通過這個我可以選擇每個ImageView的和它的動作,但是,它不會移動順暢,也是ImageView的被複制在屏幕上。
是否有可能在onTouch.MOVED視圖的第一個案例中獲取並使用它來獲取ID:iID = v.getId();
你是否試圖重用不同的imageViews的ID? – NickF 2013-05-13 21:25:05