一些总结:图片太大能显示问题解决 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)

.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
原创粉丝点击