Android 2.3.3
Eclipse Version: 3.7.0
LogCat
Activity中显示大图,部分源代码如下:
try {
bitmap = BitmapFactory.decodeFile("/" + nokia.getBitmap(), opt);
} catch (Exception e) {
e.printStackTrace();
}
nokiaImage.setImageBitmap(bitmap);
使用过程中
LogCat 报错信息:
02-07 13:14:22.947: DEBUG/dalvikvm(33246): GC_EXTERNAL_ALLOC freed 75K, 61% free 3080K/7751K, external 14227K/16275K, paused 100ms
02-07 13:14:23.017: ERROR/dalvikvm-heap(33246): 4147200-byte external allocation too large for this process.
02-07 13:14:23.137: ERROR/GraphicsJNI(33246): VM won't let us allocate 4147200 bytes
02-07 13:14:23.148: DEBUG/dalvikvm(33246): GC_FOR_MALLOC freed 2K, 61% free 3078K/7751K, external 14227K/16275K, paused 37ms
02-07 13:14:23.191: DEBUG/skia(33246): --- decoder->decode returned false
02-07 13:14:23.191: DEBUG/AndroidRuntime(33246): Shutting down VM
02-07 13:14:23.191: WARN/dalvikvm(33246): threadid=1: thread exiting with uncaught exception (group=0x40015560)
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): FATAL EXCEPTION: main
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:470)
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:284)
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): at com.tmall.nokia.Book.handerUI(Book.java:522)
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): at com.tmall.nokia.Book$1.run(Book.java:396)
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): at android.os.Handler.handleCallback(Handler.java:587)
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): at android.os.Handler.dispatchMessage(Handler.java:92)
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): at android.os.Looper.loop(Looper.java:123)
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): at android.app.ActivityThread.main(ActivityThread.java:3683)
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): at java.lang.reflect.Method.invokeNative(Native Method)
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): at java.lang.reflect.Method.invoke(Method.java:507)
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-07 13:14:23.218: ERROR/AndroidRuntime(33246): at dalvik.system.NativeStart.main(Native Method)
02-07 13:14:23.268: WARN/ActivityManager(61): Force finishing activity com.tmall.nokia/.Book
发生错误的原因分析:
主要是bitmap图片尺寸较大,使用时超过预算的VM;
网上有两种解决办法:
一种是增加VM大小
VMRuntime.getRuntime().setMinimumHeapSize(12 * 1024 * 1024);
VMRuntime.getRuntime().setTargetHeapUtilization(0.85f);
经个人测试无效;
另一种是使用缩略图,缩小图片的尺寸大小
//图片缩小倍数
opt.inSampleSize = 2;
可以实现。
分享到:
相关推荐
Bitmap的使用,加载Drawable、Assert、SDcard上的图片,进行变换、压缩等操作,Bitmap和Drawable相互转换,Bitmap和数组的相互转换。
软件开发网在此之前给大家介绍过图片加载框架Glide的基本用法介绍,大家可以先参考一下,本篇内容更加深入的分析了Glide获取图片Path、Bitmap用法,以及实现的代码分析。 1. 获取Bitmap: 1)在图片下载缓存好之后...
获取图片的缩略图鼠标拽区,截取图片的指定区域 在Panel控件上绘图,绘制鼠标拽出来的矩形。双重缓存的运用。Invalidate、Paint重绘控件。Bitmap,Image,Rectangle运用。
机器视觉技术必备,从位图到halcon图像,bitmap图像转为halcon图像,bitmap to Hobject
这是一个用于Android网络图片下载及其处理的示例源代码,非常适合Android初级开发人员使用,尤其是对下载图片的缩放等进行了详细的示范,希望大家学以致用!
功能:针对图片字体,为Bitmap Font Generator自动生成配置文件 用法:1、制作图片,单个文字图片的命名必须以图片名字命名。如:图片内容为“1”命名为“1.png”,图片内容为“万”命名为“万.png” 2、将该...
本程序教你如何使用bitmap给系统图标加上自己喜欢的背景图片
NULL 博文链接:https://chen592969029.iteye.com/blog/749100
android中对Bitmap图片设置任意角为圆角
使用bitmap实现本地图片上传,并设置展示,可用作头像上传参考,改demo中设置了裁剪圆形头像
支持用户输入,裁剪切片的:尺寸大小,缩略图名。
学习Java的源码时对Bitmap进行了细致研究,因此做了这么一个Bitmap使用方法的完整APP,压缩包里面是所有的源码,可在ben文件夹中找到此APP!
主要介绍了Android 实现把bitmap图片的某一部分的颜色改成其他颜色,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
二维码生成BitMap图片 创建二维码图片,转换
二维码BitMap图片解析,转换, 解析
Android图片Bitmap和字符串String之间相互转换的工具类,外加项目代码,封装好的,直接可以用,
Android不支持将Bitmap转换成单色的Bmp图片,所以参考Bmp格式说明,自己写了一个转换类。亲测有效!!!
C#图片缩放,使用Bitmap的方式,可以将图片按比例缩放,也可以设定固定大小
Delphi 10.1 Berlin 通过TBitmap.Canvas.DrawBitmap 对图片进行压缩
包括将彩色图转换为灰度图、将一个图片切割成多个图片、图片的缩放、图片的旋转、修改图片透明度、获得圆角图片、绘制带边框的文字图片、绘制带倒影图片等