ImageView无法监听到抬起事件,只有按下事件,但设置了clickable后又无法播放动画了
时间: 2024-03-10 14:46:55 浏览: 9
这个问题可能是因为设置了 `clickable` 后,ImageView 会拦截触摸事件,导致 `OnTouchEvent` 监听不到抬起事件。你可以尝试使用 `OnClickListener` 来处理 ImageView 的点击事件,而不是在 `OnTouchEvent` 中处理。示例代码如下:
```java
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 处理 ImageView 的点击事件
// 在这里可以播放动画
}
});
```
如果你仍然需要在 `OnTouchEvent` 中处理触摸事件,可以通过在 `OnTouchEvent` 中判断触摸事件的类型来解决。示例代码如下:
```java
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// 处理按下事件
return true;
case MotionEvent.ACTION_MOVE:
// 处理移动事件
return true;
case MotionEvent.ACTION_UP:
// 处理抬起事件
// 在这里可以播放动画
return true;
default:
return super.onTouchEvent(event);
}
}
```
在 `OnTouchEvent` 中只处理 `ACTION_DOWN`、`ACTION_MOVE` 和 `ACTION_UP` 三种事件,并在 `ACTION_UP` 中处理抬起事件并播放动画。这样就可以同时解决无法监听到抬起事件和无法播放动画的问题了。