2014-02-16 173 views
0

我有一個視圖,即一個RelativeLayout。在該佈局內部,有一個圖像,默認情況下,該圖像的可見性設置會消失。我想要實現的是將可見性更改爲可視化編程,然後創建視圖快照並將其繪製到畫布上。立即更改子視圖可見性更新android視圖

View icon = v.findViewById(android.R.id.icon2); 
    if (icon != null) { 
     icon.setVisibility(View.VISIBLE); 
     v.invalidate(); 
     v.forceLayout(); 
     icon.invalidate(); 
     icon.refreshDrawableState(); 
    } 

....

v.setDrawingCacheEnabled(true); 
    mFloatBitmap = Bitmap.createBitmap(v.getDrawingCache()); 
    v.setDrawingCacheEnabled(false); 

生成位圖不包括修改icon.setVisibility(View.VISIBLE);。我應該如何立即使視圖無效? icon.setVisibility(View.VISIBLE);之後我使用的兩種方法都不起作用。

+0

您知道您可以將視圖繪製到任何您想要的畫布上嗎?通過調用公共方法'draw(Canvas)'?此外,使用這種方法,您無需使視圖或重做佈局無效(通常)。 – nekavally

回答

0

直到它經歷了onMeasure和onDraw之後,它纔會真正變得可見。直到onMeasure它不知道它的高度,直到onDraw它沒有緩存。發生抽籤後你必須這樣做。沒有辦法讓它立即發生。