,我发现我的问题的解决方案如下:
final GridView layout = (GridView)parentView;
parentView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
for(int i =0; i< layout.getChildCount(); i++){
View view = layout.getChildAt(i);
Rect outRect = new Rect(view.getLeft(), view.getTop(), view.getRight(), view.getBottom());
if(outRect.contains((int)event.getX(), (int)event.getY())){
mBubble = (ImageView) view.findViewById(R.id.img_bubble);
if(mSavedStates.get(i)){
mSavedStates.remove(i);
mSavedStates.put(i,false);
mBubble.setBackgroundResource(R.drawable.ic_emptybubble);
playRandomSound();
ThreadType2 task = new ThreadType2(new RunnableType2() {
@Override
public void run(View view, int position) {
mSupporBubble = (ImageView) view.findViewById(R.id.img_bubble);
mSavedStates.remove(position);
mSavedStates.put(position, true);
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
mSupporBubble.setBackgroundResource(R.drawable.ic_fullbubble);
}
});
}
});
task.start(view, i);
}
}
}
return true;
}
});
非常感谢你,我会去尝试一下,它比我想象的更简单 –