我的应用程序有这个代码片段
mView.setDrawingCacheEnabled(true);
mBitmap = Bitmap.createBitmap(mView.getDrawingCache());
其中 mView 是 FrameLayout 的自定义子类的一个实例。该应用程序已经运行了 6 个月,现已拥有数千名用户。最近我收到了一些关于传递给 createBitmap() 的空指针的报告(可能来自同一用户,但我无法确认)。我不知道用户使用什么硬件或安卓版本。
即使我在它之前启用了缓存,什么会导致 getDrawingCache() 返回 null?是否与新手机的硬件加速有关?是因为位图的内存不足吗?还要别的吗?可以预防吗?
编辑:我在这里找到了这个解决方案http://tinyurl.com/7yranvj。这是一个合理的解决方法吗?
mBitmap = Bitmap.createBitmap(mView.getWidth(), mView.getHeight(),
Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(mBitMap);
mView.draw(canvas);