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);