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