public OnTouchListener onTouch=new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
if(v.getId()==R.id.mImgReback){
mImgReback.setBackgroundDrawable(new BitmapDrawable(App_Common.allBitmap[zcMathGameRes.reback1_png]));
}
else if(v.getId()==R.id.mImgfrog){
mImgfrog.setAlpha(1f);
}else if(v.getId()==R.id.mImgBigOrSmall){
mImgBigOrSmall.setAlpha(1f);
}else if(v.getId()==R.id.mImgNumble){
mImgNumble.setAlpha(1f);
}else if(v.getId()==R.id.mImgGood){
mImgGood.setAlpha(1f);
}
break;
case MotionEvent.ACTION_UP:
if(v.getId()==R.id.mImgReback){
mImgReback.setBackgroundDrawable(new BitmapDrawable(App_Common.allBitmap[zcMathGameRes.reback0_png]));
}else if(v.getId()==R.id.mImgfrog){
mImgfrog.setAlpha(0.0f);
}else if(v.getId()==R.id.mImgBigOrSmall){
mImgBigOrSmall.setAlpha(0f);
}else if(v.getId()==R.id.mImgNumble){
mImgNumble.setAlpha(0f);
}else if(v.getId()==R.id.mImgGood){
mImgGood.setAlpha(0f);
}
break;
}
return true;
}
};
不知道為什么,如果是ImageView的OnTouchListener,onTouch方法要返回true,MotionEvent.ACTION_UP,MotionEvent.ACTION_MOVE 才有效。
其實關於返回true,false,true是不會再向外傳播,false:是向外傳播
android 傳播機制:最先觸發的是按鈕上綁定的監聽事件--->該組件提供的回調方法--->然后傳播到該組件所在的Activity。