这是我用于保存图像的代码:
private Bitmap TakeImage(VIEw v) { Bitmap screen = null; try { v.setDrawingCacheEnabled(true); v.measure(MeasureSpec.makeMeasureSpec(0,MeasureSpec.UnspecIFIED),MeasureSpec.makeMeasureSpec(0,MeasureSpec.UnspecIFIED)); v.layout(0,v.getMeasureDWIDth(),v.getMeasuredHeight()); v.buildDrawingCache(true); screen = v.getDrawingCache(); v.setDrawingCacheEnabled(false); // clear drawing cache } catch (Exception e) { e.printstacktrace(); } return screen; }
这是将其保存在SDCard中的代码:
private voID saveGraph(Bitmap graph,Context context) throws IOException { OutputStream fOut = null; file file = new file(Environment.getExternalStorageDirectory() + file.separator + "test.jpg"); fOut = new fileOutputStream(file); graph.compress(Bitmap.CompressFormat.JPEG,85,fOut); fOut.flush(); fOut.close(); MediaStore.Images.Media.insertimage(getContentResolver(),file.getabsolutePath(),file.getname(),file.getname());}
我收到错误:
Can’t compress a recycled bitmap in the compress call!
有任何想法吗?
解决方法 这可能导致位图被回收:v.setDrawingCacheEnabled(false); // clear drawing cache
如果您希望位图挂起更长时间,则应将其复制.
总结以上是内存溢出为你收集整理的android – 无法压缩回收的位图全部内容,希望文章能够帮你解决android – 无法压缩回收的位图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)