android 图片加载内存溢出 5C

图片说明图片说明

0

8个回答

https://blog.csdn.net/JavaLive09/article/details/52869732
为android 应用申请更多内存

1
u014533732
324234324444 感觉治标不治本
一年多之前 回复

压缩图片像素 和显示区域

0

不要一次性加载太多图片,可以分屏显示,同时限制上传入口,图片做裁剪后上传

0

集成xUtils3.0框架,图片内存溢出的问题迎刃而解

0

一次加载的图片过大导致的,可以和服务端协商,在需要小图的时候返回小图,在需要大图的时候适当对图片进行压缩。

0

压缩图片,或者用别的方法,例如限定请求图片的大小

0

压缩图片在操作,使用第三方加载库例如glide/picaso等,如果要自己封装工具的话,下载图片后先压缩质量在操作就不会出现内存溢出了

/**
* 压缩图片(质量压缩)
*
* @param bitmap bitmap
*/
public File compressImage(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中
int options = 100;
while (baos.toByteArray().length / 1024 > 500) { //循环判断如果压缩后图片是否大于500kb,大于继续压缩
baos.reset();//重置baos即清空baos
options -= 80;//每次都压缩80%
bitmap.compress(Bitmap.CompressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中
// long length = baos.toByteArray().length;
}
String filename = TimeUtil.longToDate(System.currentTimeMillis());
File file = new File(cropIconDir, filename + ".png");
try {
FileOutputStream fos = new FileOutputStream(file);
try {
fos.write(baos.toByteArray());
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
recycleBitmap(bitmap);
return file;
}

    望采纳!
0
-3
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android--图片加载处理(内存溢出和三级缓存)
最简单的解决办法,用现成的框架,推荐glide和picasso 一、glide下载地址:https://github.com/bumptech/glide 用法:在build.gradle中加入:   repositories { mavenCentral() maven { url 'https://maven.google.com' } } dependencies { ...
Android 加载图片过程导致内存溢出(Out Of Memory)
加载图片的时候,啪啪啪就OOM了。 解决图片OOM之前,先来了解一下一张图片内存占用的相关因素——图片质量,图片尺寸,填充区域图片质量质量就是图片大小(多少MB,多少KB)。相对情况下图片越大,占用内存越大图片尺寸图片尺寸=图片的宽高,相对情况下宽高越大,占用内存越大填充区域填充区域就是图片显示在屏幕上的大小,可以理解为ImageView的大小。相对情况下宽高越大,占用内存越小。 (有些人一直错误
android加载大量图片内存溢出的三种解决办法
2019独角兽企业重金招聘Python工程师标准>>> ...
Android的列表展示大量图片防止内存溢出的处理办法
根据项目需求获取手机相册中的所有图片并通过recyclerview列表展示 原因是拿到手机相册图片后存入一个集合,并把该集合的图片路径数据在循环中逐个取出来赋给实体类,同时也多此一举的把图片转bitmap并压缩,另外在列表加载图片选择的是gilde方式。但是加载出现了严重的问题,经过测试,在一些机型上会直接抛出OOM,开始不明所以,后面发现是我的实体类出现了问题即:实体类中的图片是一个bitmap...
Android图片加载方案——如何保证图片清晰度同时,最大限度节省内存使用量
最近做的项目里,需要在主页面加载很多图片。那么就尝尝出现OOM,尝试了多种方法,最后找到一种很不错的办法,极大的节省了内存空间,原先程序运行时的内存占有量大约在120-200左右,又时甚至能达到醉人的250直接OOM掉。修改过后,长期稳定在60-100M之间。所以说优化了接近50%。那么现在我们就来看看,我是怎么做的~~ 【一】使用Drawable代替bitmap 经过实际测试发现,D
解决imageView加载图片时候造成内存溢出的问题
图片加载  出现内存溢出的问题很普遍  而且解决的方法五花八门 各有优劣 主要是因为  imageView  在底层创建图片层的时候 会占用很大的内存空间 尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource直接使用图片路径来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBit
Android解耦合三级缓存加载图片
解决因图片加载过多而出现的内存溢出问题
android开源库----Picasso加载图片的内存优化
上次我们说了picasso这个加载图片的开源库,但是我们还是可以对它加载图片进行进一步的优化 1 图片裁剪 我们尽量的剪裁,如图片的列表我们最好都是剪裁过Picasso.with( imageView.getContext() ) .load(url) .resize(dp2px(250),dp2px(250)) .centerCrop() .into(imageView);2 查看大图放弃me
安卓加载图片过大而导致OOM内存溢出的解决方法(巨坑....)
如果图片太大会造成OOM内存溢出的错误,需要用Bitmap的压缩机制。 如果跳转的页面含有图片可能会导致跳转失败。 比如说我这里是一旦触发了某个按键,就修改该xml的图片和文字说明 则setImageResource应该改成这样imageview.setImageBitmap(decodeSampledBitmapFromResource(getResources(),name[i], 10
Glide加载图片into(Target)导致OOM异常
最近在项目中遇到Drawable转换成Bitmap的需求,Glide加载的Drawable对象,而需要的是Bitmap对象。于是找到一个可以使用的方法,但是程序运行之后出现OOM异常,通过AndroidStudio自带的内存检测工具观察得到在加载图片的时候,memory的使用大约增长了几十M。经过对该方法的检查,drawable.getIntrinsicWidth()加载的是原图片的长宽。而Glid
ImageLoader防止内存溢出(OOM)
public class MyApplication extends Application {     @Override     public void onCreate() {         super.onCreate();         SDKInitializer.initialize(getApplicationContext());               
Android---加载图片 解决图片过大导致的内存溢出问题
图片的处理 图片的总大小 = 图片的总像素 * 每个像素的大小 BMP 无损格式位图 单色(黑、白)、16、256、24(RGB) 单色每个像素只能表示两钟颜色,只需要使用一个长度为1的二进制数字即可,一个像素占用1/8个字节 16色每个像素可以表示16种颜色,那么需要16个数字,0-15,二进制是 0000-1111长度为4的二进制数字,每个像素占用1/2个字节 256色每个像素可以表示256种
ImageLoader
Android Universal ImageLoader 网络图片加载和本地图片加载
使用ImageLoader进行图片加载
图片加载在任何一个app中都是非常常用的。如果处理的不好很容易导致内存溢出。一般用的都是第三方的框架,该demo是使用imageLoader进行图片加载。
解决Android中使用Bitmap加载图片发生OOM内存溢出的问题
这两天在写一个上传头像的功能。上传头像到服务器的同时,需要把头像存储在本地。但程序总是运行一段时间后,就因为OOM崩溃了,最终发现问题出在直接使用Bitmap加载图片时,实际上在加载到内存中的时候占用空间的大小远大于图片本身的大小,就容易产生内存溢出的问题。 这个问题困扰了我两天,最后终于解决了,解决办法是对图片进行压缩。因为其实用户头像显示的大小并不大,没有必要使用一张完全高清的图片。决定写下这...
图片加载本地图片出现内存溢出
public static Bitmap readBitMap(Context context, int resId) { BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inPreferredConfig = Bitmap.Config.RGB_565; opt.inPurgeable = true; op
Android开发之大图片加载内存溢出
缩放加载加载大图片(使用大图片时可能出现的异常)Caused by: java.lang.OutOfMemoryErrorPS: 图片宽高:2400*3200 手机屏幕大小:320*480 宽缩放: 7 高缩放: 6 需要考虑的问题: (1)动态获取图片的分辨率 (2)动态获取手机分辨率 实现步骤(1)获取手机屏幕的宽和高
Android 解决加载图片过多出现oom--强大的Fresco
Fresco是Facebook推出的很好的解决加载图片过多而产生的oom现象。但是在我最先接触Fresco的时候,由于我用的eclipse开发, 在官网下载的Fresco库没办法用,不知道是怎么回事,后来自己找到了一个直接导入就可以用的Fresco库,[免费下载链接](http://download.csdn.net/detail/sunflower_cwy/9444387) 先新建一个ImageP
android网络图片加载
网络图片加载,,android项目网络图片加载,适合listview
Android网络图片加载内存溢出(OOM)解决方案
将大量图片直接加载到内存中,是造成OOM的主要原因。 解决方法: 添加本地缓存,不直接从网络加载图片到内存。将图片缓存到本地,每次都从本地获取图片,如果本地没有,再从网络获取。本地缓存开启线程,将网络图片下载到本地SD卡。
android 图片下载 有效解决内存溢出问题
android 图片下载 有效解决内存溢出问题 android 图片下载 有效解决内存溢出问题
android解决内存溢出的问题..docx
android解决内存溢出的问题(包括图片、对象的内存溢出)
体量极小的picasso图片加载
一款体量极小的图片加载缓存工具,android图片加载更流畅
android避免decodeResource图片时占用太大的内存
尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存。  因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的sourc...
listview加载更多,并图片异步加载,处理内存溢出
1:listview加载分页图片 2:实现下拉刷新更多 3:处理图片加载和异步缓冲 4:处理内存溢出的可能
Android图片加载&使用介绍
Android图片加载&使用介绍
Android防止内存溢出浅析
Android防止内存溢出浅析
android VolleyImage
android VolleyImage 图片加载和处理
DemoLoader
android studio 图片加载
android 异步图片加载
android 异步图片加载
Android图片加载库比较
图片加载库比较 Android开发过程中,图片加载基本是每个项目都必备的功能,图片加载的开源项目也比较多,从最老牌的Android-Universal-Image-Loader,到后来Google的Volley再到良心公司Square的Picasso以及FaceBook的Fresco和Google IO开发者大会上推荐的Glide。 面对这么多的加载库我们该如何去选择? 他们各有优缺点,没...
Android 内存溢出和内存泄漏的区别以及造成的原因
一、原理 内存溢出(Out of memory): 内存泄漏(Memory leak): 二
android 内存溢出 和 内存泄漏
内存溢出(out of memory) :是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory(OOM)那就是内存溢出。内存溢出也就是内存不够用。内存溢出原因: 1.Android系统为每个应用程序申请到的内存有限,一般为16M或者24M 也有98M 221M等,我们可以在清单文件中进行配置,android:largeheap = "true" 从而给APP申请更大的内...
OOM-关于Android内存溢出的一些解决思路的整理
原因:系统为每一个应用程序分配了不同的内存上限,如果超过这个上限被视为内存泄露,从而被kill掉。 比如: 1.加载对象过大 2.相应资源过多,来不及加载。 解决办法们 oom这个真的不好权衡,下面这些注意事项好多是相互矛盾的,根据业务,各取所需吧。 而且一味的追求小内存开销,也不好。 毕竟,硬件本身的性能越来越强大,你不用,它也会老化。 一、图片 1.内存中加载图片直接在内存中做处...
android 内存泄漏与内存溢出解决办法(总结)
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。 原因: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据; 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收; 3.代码中存在死循环或循环产生过多重复的对象实体; 4...
浅谈 Android 内存溢出与内存泄漏
概念 内存溢出(Out of memory):系统会给每个APP分配内存,默认16M内存,每个手机厂商的默认值不一样,当APP所需要的内存大于了系统分配的内存,就会造成内存溢出;内存溢出就是分配的内存被用光了,不够用了。 内存泄漏(Memory leak):当一个对象不再使用了,本应该被垃圾回收器(GC)回收,但是这个对象由于被其他正在使用的对象所持有,造成无法被回收,导致一部分内存一直被占着...
Android 内存溢出与内存泄漏的简单分析与解决
内存溢出与内存泄露 首先我们要知道内存溢出与内存泄露的概念,什么是内存溢出和内存泄露。 内存溢出:就想杯子里得水满了,就溢出了。内存溢出就是分配的内存被用光了,不够用了。 内存泄露:就如同杯子里面有石子,导致杯子里面的一部分空间没有被利用,在APP中内存泄露就是指该被回收的内存没有被回收,导致一部分内存一直被占着,可利用内存变少了。当泄露过多 时,可利用的内存越来越少,就会引起内存
android图片加载库的使用对比
1.Android-Universal-Image-Loader giehub地址::https://github.com/nostra13/Android-Universal-Image-Loader 这个框架是我最早使用的一款老牌框架,至今仍有许多开发者在用,不过该项目已经不再继续维护了,所以在此不推荐使用 使用方法:在自定义的application里进行配置,可参考以下代码:
java/Android内存泄漏和内存溢出详解
java/Android内存泄漏和内存溢出详解java内存泄漏和溢出跟内存栈堆也是有一些关系,这里不解释! 这里主要讲解一下内存泄漏和溢出的区别和联系。 之前我跟别人说这两个的区别就说了:内存泄漏是因为内存对象一直被占有没有释放,而内存泄漏严重就会导致内存溢出。 其实上面这个解释听起来有一些道理,但是不怎么正确,下面跟大家在详细解释一下:一.内存泄漏和内存溢出的定义1.内存泄露 memory
Android之内存泄露、内存溢出、内存抖动分析
Java GC Java是垃圾回收语言的一种,开发者无需像C管理内存分配,防止未释放的内存把堆栈(heap)挤爆的可能。对android移动端来说,内存使用尤为吃紧,最开始的app进程最大分配才8M的内存,渐渐增加到16M、32M、64M,但是对服务端来说还是很渺小的。 内存泄露