【发布时间】:2011-03-15 23:56:38
【问题描述】:
我正在使用框架布局和顶部/左侧边距组合在屏幕上拖动图像视图。我在 imageview 的 setOnTouchListener() 中添加了所有代码。问题是 UI 没有在 MotionEvent.ACTION_MOVE 上重新绘制,我只在收到 MotionEvent.ACTION_UP 时看到更新。如何强制视图在 MotionEvent.ACTION_MOVE 的新位置重绘图像?
【问题讨论】:
我正在使用框架布局和顶部/左侧边距组合在屏幕上拖动图像视图。我在 imageview 的 setOnTouchListener() 中添加了所有代码。问题是 UI 没有在 MotionEvent.ACTION_MOVE 上重新绘制,我只在收到 MotionEvent.ACTION_UP 时看到更新。如何强制视图在 MotionEvent.ACTION_MOVE 的新位置重绘图像?
【问题讨论】:
您想使视图无效。如果您可以获取 ImageView 调用 getParent() 然后在父级上无效并且应该强制重绘。
((View)v.getParent()).invalidate();
【讨论】:
imageView.invalidate() 不应该足以重绘图像吗?同样有趣的是,在我的情况下,裸露的imageView.invalidate() 足以在 Android 2.3 中重绘视图,但在 Android 4.0 中则不然。