0
我必須能夠檢測到按鈕和按鈕的釋放,但是我還必須在被觸摸的gridview中放置該項目的位置。我基本上有一個d-pad控件的gridview。所以當用戶推它時,我需要它發送「去」,當他們發佈時,我需要它發送「停止」如何在gridview中獲取項目選擇的位置,或通過onItemClick檢測鍵的釋放?
與下面這個,有沒有辦法告訴他們什麼時候離開按鈕(即我知道!)。
Grid.setAdapter(new ImageAdapter(c, mThumbIds));
Grid.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Message msg = new Message();
msg.what = what;
msg.arg1 = position;
cHandler.sendMessage(msg);
}
});
,但如果我使用一個ontouch聽者我不能告訴其在電網項目,他們選擇了
Grid.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
Message msg = new Message();
msg.what = 255;
msg.arg1 = 255;
cHandler.sendMessage(msg);
}
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Message msg = new Message();
msg.what = what;
msg.arg1 = 55;
cHandler.sendMessage(msg);
}
return false;
}
});
你的時間是極大的讚賞!
///好吧,這是我一直在嘗試做的事情,我永遠無法得到GridView的不同部分的界限。 r.getX等總是返回0.如果我有資源的id我怎麼能拉它的矩形?
Grid.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
Rect r = new Rect();
ImageView imageView = new ImageView(c);
for(int n: mThumbIds){
imageView.setImageResource(n);
r = imageView.getDrawable().getBounds();
if(r.contains((int)event.getX(),(int)event.getY()))
{
Message msg = new Message();
msg.what = what;
msg.arg1 = n;
msg.arg2 = (int)event.getRawY();
cHandler.sendMessage(msg);
break;
}else{
Message msg = new Message();
msg.what = what;
msg.arg1 = r.centerX();
msg.arg2 = n;
cHandler.sendMessage(msg);
}
}// end for
}// end if action up
我如何迭代gridview並訪問每個項目。我一直試圖從ontouch監聽器中查找imageviews的邊界,但它總是返回0作爲x/y等。 – 2011-02-09 16:10:14