android – 增加分配给应用程序的内存

我尝试显示相机拍摄的图像并将其显示在应用程序中.当我拍摄低分辨率图像(比如说大小为100kB)时,我没有切换到位图显示的问题,当我以高分辨率(1.5MB)拍摄时,应用程序崩溃,异常
Error java.lang.OutOfMemoryError.

碰巧在我的智能手机上(三星galaxy SII,SIII galaxy)就在所有货架上.
现在我通过降低照片的质量和尺寸来手动解决,但是,随着分辨率越来越高的相机的发展,这个问题可能会更频繁地出现.
是否没有永久的解决方案来增加分配给我的Android应用程序的内存,而无需在设备和代码中进行手动干预?

图像以位图格式存储

//image creation
Uri domuri1

ContentValues cv = new ContentValues();
cv.remove("101");
domuri1 = getContentResolver().insert(Media.EXTERNAL_CONTENT _URI,cv);
File domthumb1 = new File(domuri1.toString(),fileName1);

//increment photo apparate
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT,domuri1);
startActivityForResult(intent,100);

//images save
ContentResolver cr = getContentResolver();
bitmap1 = MediaStore.Images.Media.getBitmap(cr,domuri1 );
imageView.setimageBitmap(bitmap1);

解决方法

普通应用程序的认内存值是16MB,您可以在应用程序标记内最明显的文件中使用android:largeHeap =“true”(可能会增加内存高达64MB).您可以获取分配给您的内存值
ActivityManager.getMemoryClass()ActivityManager.getLargeMemoryClass().

即使你要求largeHeap,如果你的应用程序需要它,android也只会分配更多的内存.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...