Android - 用手指拖动imageview不会更新位置

问题描述:

我正在使用框架布局和顶部/左侧边距组合来在屏幕上拖动图像视图。我已经在imageview的setOnTouchListener()中添加了所有代码。问题是UI不会在MotionEvent.ACTION_MOVE上重新绘制,并且只有在收到MotionEvent.ACTION_UP时才会看到更新。我怎么能强制视图重绘图像在MotionEvent.ACTION_MOVE上的新位置?Android - 用手指拖动imageview不会更新位置

你想使视图无效。如果您可以获取ImageView调用getParent(),则在父级上失效,并强制重绘。

((View)v.getParent()).invalidate(); 
+0

是的,这就是我的想法,但没有奏效。我实际上通过id找到了包含这个imageview的framelayout,并在其上调用invalidate。到目前为止,唯一可行的解​​决方案是将imageBitmap重新分配给imageview,但这听起来太蹩脚,无法成为永久的解决方案。 – Marius 2011-03-16 00:35:04

+0

+1非常感谢,我遇到了类似的问题,此解决方案适用于我。问题是为什么?这是Android中的错误吗?不应该'imageView.invalidate()'足以重绘图像?还有一个有趣的事实是,在我的情况下,''imageView.invalidate()'足以重绘Android 2.3中的视图,但在Android 4.0中却不是。 – Piotr 2012-04-09 20:36:42