setDrawingCacheEnabled不适用于LinearLayout

时间:2015-06-17 10:53:15

标签: android drawingcache

所以,基本上我有下一段代码:

  llPhotoTest.setDrawingCacheEnabled(false);
  llPhotoTest.setDrawingCacheEnabled(true);
  ... 
  llPhotoTest.getDrawingCache();

第一次一切正常,但第二次缓存的图片保持不变。 我已经看到了很多针对这个问题的解决方案,但对我来说没什么用。我将不胜感激任何帮助或建议。提前谢谢

我试过了:

llPhotoTest.setDrawingCacheEnabled(true);
llPhotoTest.getDrawingCache();
llPhotoTest.setDrawingCacheEnabled(false);

我也试过

llPhotoTest.buildDrawingCache();
llPhotoTest.getDrawingCache();
llPhotoTest.destroyDrawingCache();

还是一样的照片:(

有布局边界 enter image description here

2 个答案:

答案 0 :(得分:1)

这不是显示位图的好方法。

使用ImageView,而不是LinearLayout并致电ImageView.setImageBitmap(Bitmap bm)

答案 1 :(得分:1)

感谢大家!我找到了解决方案,这是一个问题。 llPhotoTest.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

来自文档http://developer.android.com/reference/android/view/View.html#LAYER_TYPE_SOFTWARE

Indicates that the view has a software layer. A software layer is backed by a bitmap and causes the view to be rendered using Android's software rendering pipeline, even if hardware acceleration is enabled.