2011-04-18 97 views
2

我是Android新手,我试图隐藏一个图像,但它似乎没有被解雇,任何人都可以请我指出正确的方向吗?OnTouch没有触发

谢谢

public class GameActivity extends Activity {  
/** Called when the activity is first created. */ 
//GameView theView; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //theView = new GameView(this); 
    //theView.setBackgroundResource(R.layout.myviewlay); 
    setContentView(R.layout.myviewlay); 

    } 
public boolean onTouch(View view,MotionEvent event) 
{ 

     ImageView image = (ImageView) findViewById(R.id.ImageView03); 
     image.setVisibility(View.INVISIBLE); 
     view.invalidate(); 
     return true; 
} 

}

回答

4

覆盖的onTouchEvent解决您的问题。

@Override 
    public boolean onTouchEvent(MotionEvent event) { 
     // TODO Auto-generated method stub 
     int action = event.getAction(); 
     if(action == MotionEvent.ACTION_DOWN){ 
      ImageView image = (ImageView) findViewById(R.id.ImageView03); 
      image.setVisibility(View.INVISIBLE); 
     } 
     return super.onTouchEvent(event); 
    } 
+0

哇这工作得很好!最后一个问题..有什么办法来确定是否Imageview03被点击,而不是ImageView02?,因为如果我可以做到这一点,那么我可以做一个switch语句..我只是不知道如何与android ... – user710502 2011-04-18 07:41:11

+0

ImageView imageView =(ImageView)findViewById(R.id.Image01); \t \t \t imageView.setOnClickListener(新OnClickListener(){ \t \t \t \t公共无效的onClick(视图v){ \t \t \t \t \t //在这里做你的事件。 \t \t \t \t} \t \t \t} ); – Howard 2011-04-18 07:48:35

0

在ImageView上设置事件侦听器使您能够找到您触摸的图像。

ImageView imageView = (ImageView) findViewById(R.id.Image01); 
      imageView.setOnClickListener(new OnClickListener() { 
       public void onClick(View v) { 
        // do your event here. 
       } 
      }); 

      imageView.setOnTouchListener(new OnTouchListener() { 
       public boolean onTouch(View v, MotionEvent event) { 
        // TODO Auto-generated method stub 
        return false; 
       } 
      }); 
+0

不客气。 – Howard 2011-04-18 08:09:49

+0

这真棒霍华德,非常感谢你!我可以给你更多的观点:),我有另一个问题,但我可能会因为问这么多问题而变得不好。在Java中,我可以做一个Thread.sleep(1000),如果我想要它,所以延迟程序...当他们点击图片时,我可以做一个Thread.Sleep(1000),以便OnTouch需要一点时间吗? – user710502 2011-04-18 08:16:26

+0

当然你可以,只是提醒说使用try catch来围绕Thread.sleep(1000); – Howard 2011-04-18 08:30:20