2011-03-15 33 views
1

我正在使用框架佈局和頂部/左側邊距組合來在屏幕上拖動圖像視圖。我已經在imageview的setOnTouchListener()中添加了所有代碼。問題是UI不會在MotionEvent.ACTION_MOVE上重新繪製,並且只有在收到MotionEvent.ACTION_UP時纔會看到更新。我怎麼能強制視圖重繪圖像在MotionEvent.ACTION_MOVE上的新位置?Android - 用手指拖動imageview不會更新位置

回答

1

你想使視圖無效。如果您可以獲取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