我尝试使图像视图可点击。实际上它是可点击的,因此我可以在用户触摸 imageview 后调用 Intent。但我正在努力改变触摸时的图像。
我想要以下内容:
- 默认(无触摸):Image1
- 用户触摸 imageview:更改为 image2
- 用户用手指移出图像视图:更改回 Image1(不调用 Intent)
- 用户取消接触 imageview:调用 Intent 并切换回 Image1
其中一些事情正在使用以下代码:
final ImageView v = (ImageView) findViewById(R.id.profileImage);
v.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
switch (arg1.getAction()) {
case MotionEvent.ACTION_DOWN: {
v.setImageResource(R.drawable.ic_contact_picture_down);
break;
}
case MotionEvent.ACTION_CANCEL:{
v.setImageResource(R.drawable.ic_contact_picture);
break;
}
case MotionEvent.ACTION_UP: {
takePhoto();
v.setImageResource(R.drawable.ic_contact_picture);
break;
}
}
return true;
}
});
触摸时图像正确更改为 image2。所以 ACTION_DOWN 正在工作。如果用户未触摸图像视图,则调用 ACTION_UP。但如果 untouch 是在 imageview 之外完成的,它也会被调用。如果发生这种情况,我想切换回 image1 但不调用 takePhoto() 函数。ACTION_CANCEL 永远不会被调用,我认为它是上述情况的候选者。