出现Immutable bitmap passed to Canvas constructor
来源:互联网 发布:mac软件可以移动吗? 编辑:程序博客网 时间:2024/06/13 00:27
Immutable bitmap passed to Canvas constructor
操作bitmap出现crash.
上code:
private void setBluredBackground(View root) { WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); DisplayMetrics displayMetrics = new DisplayMetrics(); DisplayInfo info = new DisplayInfo(); display.getRealMetrics(displayMetrics); display.getDisplayInfo(info); Bitmap bitmap; bitmap = FastBlur.takeScreenshot(display, displayMetrics, info).copy(Bitmap.Config.ARGB_8888, true); Drawable drawable = null; Canvas canvas = null; if (bitmap == null) { WallpaperManager wpm = WallpaperManager.getInstance(mContext); drawable = wpm.getDrawable(); int w = (int)drawable.getIntrinsicWidth(); int h = (int)drawable.getIntrinsicHeight(); bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); Canvas c = new Canvas(bitmap); drawable.setBounds(0, 0, w, h); drawable.draw(c); wpm.forgetLoadedWallpaper(); c = null; } canvas = new Canvas(bitmap); canvas.drawARGB(0xA0,0,0,0);//略操作bitmap。。。。。。 }
AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: android.uiAndroidRuntime: java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructorAndroidRuntime: at android.graphics.Canvas.<init>(Canvas.java:131)AndroidRuntime: at com.android.server.policy.GlobalActions$GlobalActionsIconDialog.setBluredBackground(GlobalActions.java:1585)AndroidRuntime: at com.android.server.policy.GlobalActions$GlobalActionsIconDialog.onCreate(GlobalActions.java:1557)AndroidRuntime: at android.app.Dialog.dispatchOnCreate(Dialog.java:395)AndroidRuntime: at android.app.Dialog.show(Dialog.java:294)AndroidRuntime: at com.android.server.policy.GlobalActions.cnHandleShow(GlobalActions.java:267)AndroidRuntime: at com.android.server.policy.GlobalActions.showDialog(GlobalActions.java:211)AndroidRuntime: at com.android.server.policy.PhoneWindowManager.showGlobalActionsInternal(PhoneWindowManager.java:1923)AndroidRuntime: at com.android.server.policy.PhoneWindowManager.powerLongPress(PhoneWindowManager.java:1782)AndroidRuntime: at com.android.server.policy.PhoneWindowManager.-wrap20(PhoneWindowManager.java)AndroidRuntime: at com.android.server.policy.PhoneWindowManager$PolicyHandler.handleMessage(PhoneWindowManager.java:1098)AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)AndroidRuntime: at android.os.Looper.loop(Looper.java:159)AndroidRuntime: at android.os.HandlerThread.run(HandlerThread.java:61)AndroidRuntime: at com.android.server.ServiceThread.run(ServiceThread.java:46)AndroidRuntime: Shutting down VMAndroidRuntime: FATAL EXCEPTION: main
原因是:
(引用 自 http://blog.csdn.net/gh102/article/details/6719624 )
出现Immutable bitmap passed to Canvas constructor错误的原因是如果不用copy的方法,直接引用会对资源文件进行修改,而Android是不允许在代码里修改res文件里的图片。
解决方案:
把
bitmap = FastBlur.takeScreenshot(display, displayMetrics, info);
改成:
bitmap = FastBlur.takeScreenshot(display, displayMetrics, info).copy(Bitmap.Config.ARGB_8888, true);
这样再运行这段code就没有出现crash了。
0 0
- 出现Immutable bitmap passed to Canvas constructor
- Immutable bitmap passed to Canvas constructor 异常
- Immutable bitmap passed to Canvas constructor
- Immutable bitmap passed to Canvas constructor
- Android出现Immutable bitmap passed to Canvas constructor错误的原因
- android Immutable bitmap passed to Canvas constructor异常
- android Immutable bitmap passed to Canvas constructor异常
- Immutable bitmap passed to Canvas constructor异常解决办法
- Android 异常:Immutable bitmap passed to Canvas constructor
- android Immutable bitmap passed to Canvas constructor异常
- java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor
- android Immutable bitmap passed to Canvas constructor异常
- android Immutable bitmap passed to Canvas constructor异常
- Immutable bitmap passed to Canvas constructor错误处理
- java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor错误解决办法
- 图片显示的内存回收出现RuntimeException: Canvas: trying to use a recycled bitmap
- Canvas: trying to use a recycled bitmap android.graphics.Bitmap
- Canvas: trying to use a recycled bitmap android.graphics.Bitmap
- 使用Excel数据分析工具进行多元回归分析
- 导航的渐变设置
- C#图像中心缩放与移动
- java8 groupingby
- float浮动的消除2
- 出现Immutable bitmap passed to Canvas constructor
- 适配器设计模式
- leetcode--1. Two Sum
- dbutils的导出下载功能(excel)
- 常量成员函数
- js中的 toUpperCase()中开头的u和c一定要大些
- linux服务器下添加用户和删除用户的命令
- Linux中命令的缩写
- CentOS6.5安装JDK