嗨我试图在Android http://www.puffgames.com/bubblewrap/上重新创建这个游戏,我成功地膨胀了一个gridview,并且能够在点击时更改单个项目的背景,但我试图重新创建"疯狂模式&# 34;换句话说,当我轻扫时获取所有视图,这可能吗?如果是这样的话?请帮忙
mGridView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_MOVE){
return true;
}
return false;
}
});
答案 0 :(得分:0)
在那里你应该可以做这样的事情
mGridView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_MOVE){
int position = mGridView.pointToPosition(event.getX(),event.getY());
if(position!=-1){
//what ever you need to do to pop the bubble
adapter.popBubble(position);
}
return true;
}
return false;
}
});
答案 1 :(得分:0)
我在问题中找到的解决方案如下:
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;
}
});