一些总结:图片太大能显示问题解决 Bitmap 、oom、Imagerloaderconfig、getclass
来源:互联网 发布:安卓5.0源码下载 编辑:程序博客网 时间:2024/05/16 13:40
如:<application
android:name=".app.Application"
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.Light.NoTitleBar"
android:largeHeap="true"
>
这种方法允许应用需要耗费手机很多的内存空间,但却是最快捷的解决办法
第二种是将bitmap.recycle()掉,需要了解加载viewpager的流程
/**
* 首先ViewPager默认加载两张图片,也就是说第一次初始化这个viewpager的时候会执行两次instantiateItem这个方法。预加载下一个viewpager的item
*/
然后方法destroyItem会将通过“算法”destroy掉,remove掉view视图
可以在里面bitmap.recycle()回收掉bitmap
/////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
android:ImageLoaderConfigurationap DisplayImageOptions
/////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
//.memoryCacheExtraOptions(480, 800)//设置缓存图片时候的宽高最大值,默认为屏幕宽高
.discCacheExtraOptions(480, 800, CompressFormat.JPEG,75 )//设置硬盘缓存,默认格式jpeg,压缩质量70
.threadPoolSize(5) //设置线程池的最高线程数量
.threadPriority(Thread.NORM_PRIORITY)//设置线程优先级
.denyCacheImageMultipleSizesInMemory()//自动缩放
.memoryCache(new UsingFreqLimitedMemoryCache(4*1024*1024))//设置缓存大小,UsingFrgLimitMemoryCache类可以扩展
//.discCache(new UnlimitedDiscCache(mContext.getCacheDir())) //设置硬盘缓存
.discCacheFileNameGenerator(new HashCodeFileNameGenerator())//unkown
.imageDownloader(new BaseImageDownloader(mContext, 3000, 8000))
.defaultDisplayImageOptions(options);//如果需要打开缓存机制,需要自己builde一个option,可以是DisplayImageOptions.createSimple()
//.enableLogging();
DisplayImageOptions options=new DisplayImageOptions.Builder()
.cacheInMemory() //开启内存缓存
//.cacheOnDisc() //开启硬盘缓存
//.imageScaleType(ImageScaleType.IN_SAMPLE_INT) //缩放级别
.displayer(new FakeBitmapDisplayer()) //RoundedBitmapDisplayer(20)
.showStubImage(R.drawable.ic_launcher)
.showImageForEmptyUri(R.drawable.ic_launcher)
.showImageOnFail(R.drawable.ic_launcher)
android:name=".app.Application"
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.Light.NoTitleBar"
android:largeHeap="true"
>
这种方法允许应用需要耗费手机很多的内存空间,但却是最快捷的解决办法
第二种是将bitmap.recycle()掉,需要了解加载viewpager的流程
/**
* 首先ViewPager默认加载两张图片,也就是说第一次初始化这个viewpager的时候会执行两次instantiateItem这个方法。预加载下一个viewpager的item
*/
然后方法destroyItem会将通过“算法”destroy掉,remove掉view视图
可以在里面bitmap.recycle()回收掉bitmap
/////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
android:ImageLoaderConfigurationap DisplayImageOptions
/////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
//.memoryCacheExtraOptions(480, 800)//设置缓存图片时候的宽高最大值,默认为屏幕宽高
.discCacheExtraOptions(480, 800, CompressFormat.JPEG,75 )//设置硬盘缓存,默认格式jpeg,压缩质量70
.threadPoolSize(5) //设置线程池的最高线程数量
.threadPriority(Thread.NORM_PRIORITY)//设置线程优先级
.denyCacheImageMultipleSizesInMemory()//自动缩放
.memoryCache(new UsingFreqLimitedMemoryCache(4*1024*1024))//设置缓存大小,UsingFrgLimitMemoryCache类可以扩展
//.discCache(new UnlimitedDiscCache(mContext.getCacheDir())) //设置硬盘缓存
.discCacheFileNameGenerator(new HashCodeFileNameGenerator())//unkown
.imageDownloader(new BaseImageDownloader(mContext, 3000, 8000))
.defaultDisplayImageOptions(options);//如果需要打开缓存机制,需要自己builde一个option,可以是DisplayImageOptions.createSimple()
//.enableLogging();
DisplayImageOptions options=new DisplayImageOptions.Builder()
.cacheInMemory() //开启内存缓存
//.cacheOnDisc() //开启硬盘缓存
//.imageScaleType(ImageScaleType.IN_SAMPLE_INT) //缩放级别
.displayer(new FakeBitmapDisplayer()) //RoundedBitmapDisplayer(20)
.showStubImage(R.drawable.ic_launcher)
.showImageForEmptyUri(R.drawable.ic_launcher)
.showImageOnFail(R.drawable.ic_launcher)
.build();
public class sample{
public static void main(String[] args){
//得到类的简写名称
System.out.println(sample.class.getSimpleName());
//得到对象的全路径
System.out.println(sample.class);
//得到对象的类模板示例,也就是Class
System.out.println(sample.class.getClass());
//得到Class类的名称
System.out.println(sample.class.getClass().getName());
}
}
打印结果为:
sample
class com.lovo.test.sample
class java.lang.Class
java.lang.Class
0 0
- 一些总结:图片太大能显示问题解决 Bitmap 、oom、Imagerloaderconfig、getclass
- 图片太大,出现OOM.
- Bitmap的OOM问题解决
- 网络获取图片太大,OOM
- Bitmap OOM问题解决及优化
- Android读取本地图片,图片太大导致OOM问题。
- Anroid高效显示Bitmap图片,减少OOM问题,加载大尺寸位图
- Android 中解决图片加载OOM 之 bitmap 压缩显示,压缩上传
- Android之解决太大太多图片造成的oom
- Android之解决太大太多图片造成的oom
- Android之解决太大太多图片造成的oom
- Android HttpConnection获取图片太大 处理办法 防止OOM
- Bitmap导致的OOM 一些解决方案
- Android 图片加载Bitmap OOM错误解决办法
- Android 图片加载Bitmap OOM错误解决办法
- Android 图片加载Bitmap OOM错误解决办法
- Android 图片加载Bitmap OOM错误解决办法
- Android 图片加载Bitmap OOM错误解决办法
- webpy学习笔记之一
- ant修改文件中的内容 replace命令的使用
- Android :layer-list的用法
- Python 正则表达式提取URL中的Path
- 【Unity3D自学记录】利用代码修改图片属性(Inspector)
- 一些总结:图片太大能显示问题解决 Bitmap 、oom、Imagerloaderconfig、getclass
- Python中sort以及sorted函数初探
- 重定向输出流实现程序日志
- 如何在圆内随机点坐标
- 【2014/10/24】mysql grant revoke
- 搞笑经典语录
- Qtopia-2.2.0界面中添加汉字
- Nginx的配置与部署(1)Nginx简介及入门示例
- Mybatis初体验