2014-02-16 125 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它没有缓存。发生抽签后你必须这样做。没有办法让它立即发生。