仿QQ节假日更换启动页图标的示例代码

首先获取到存储图片的网络地址,然后将此地址用ImageLoader进行加载得到图片,然后在启动页进行判断是否要更新启动页图片

ImageLoader的具体操作如下:

1.MyApplication中的ImageLoader的初始化:
  public static void initImageLoader(Context context) {

        File cacheDir = StorageUtils.getOwnCacheDirectory(context,
                "imageloader/Cache");// 获取到缓存的目录地址
        Log.d("cacheDir", cacheDir.getPath());
        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .cacheInMemory(true)
                .cacheOnDisc(true)
                .imageScaleType(ImageScaleType.IN_SAMPLE_INT)
                .bitmapConfig(Bitmap.Config.RGB_565)// 防止内存溢出的,图片太多就这这个。还有其他设置
                // 如Bitmap.Config.ARGB_8888
                .showImageOnLoading(R.drawable.guid)   //默认图片
                .showImageForEmptyUri(R.drawable.guid)    //url爲空會显示该图片,自己放在drawable里面的
                .build();
                // 创建配置ImageLoader(所有的选项都是可选的,只使用那些你真的想定制),这个可以设定在APPLACATION里面,设置为全局的配置参数
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
                context)
                // .memoryCacheExtraOptions(480, 800) // max width, max
                // height,即保存的每个缓存文件的最大长宽
                // .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75,
                // null) // Can slow ImageLoader, use it carefully (Better don't
                // use it)设置缓存的详细信息,最好不要设置这个
                .threadPoolSize(3)
                        // 线程池内加载的数量
                .threadPriority(Thread.NORM_PRIORITY - 2)
                .denyCacheImageMultipleSizesInMemory()
                        // .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 *
                        // 1024)) // You can pass your own memory cache
                        // implementation你可以通过自己的内存缓存实现
                        // .memoryCacheSize(2 * 1024 * 1024)
                        // /.discCacheSize(50 * 1024 * 1024)
                .discCacheFileNameGenerator(new Md5FileNameGenerator())// 将保存的时候的URI名称用MD5
                        // 加密
                        // .discCacheFileNameGenerator(new
                        // HashCodeFileNameGenerator())//将保存的时候的URI名称用HASHCODE加密
                .tasksProcessingOrder(QueueProcessingType.LIFO)
                        // .discCacheFileCount(100) //缓存的File数量
                .discCache(new UnlimitedDiscCache(cacheDir))// 自定义缓存路径
                        // .defaultDisplayImageOptions(DisplayImageOptions.createSimple())
                        // .imageDownloader(new BaseImageDownloader(context, 5 * 1000,
                        // 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间
                .writeDebugLogs() // Remove for release app
                .build();
        // Initialize ImageLoader with configuration.
        ImageLoader.getInstance().init(config);// 全局初始化此配置
    }
2.在需要的地方添加此句:
ImageLoader.getInstance().displayImage(Url,imageView_guid);
ImageLoader.getInstance().loadedImage(Url,Imageloadsize,new Listener);//此句中的Listener可自由选择根据自己的需求

重点:
更换启动页(动态)
 public void getImageView(){
        String Url=deviceinformationsp.getString("GuidUrl", "");
        if(current_Id>old_Id || GetDateOrTime.compare_date(old_UpdateTime, current_UpdateTime,"yyyy-MM-dd HH:mm:ss") == -1){
            ImageLoader.getInstance().displayImage(GuidUrl,imageView_guid);//从服务器上获取图片
        }else if(current_Id==old_Id && GetDateOrTime.compare_date(old_UpdateTime, current_UpdateTime,
                "yyyy-MM-dd HH:mm:ss") ==0 ){
            ImageLoader.getInstance().displayImage(Url,imageView_guid);//存在本地缓存的图片
        }
        else{
            imageView_guid.setBackgroundResource(R.drawable.guid);//默认图片
        }
    }
此段是根据ID和更新时间来判断是不是要更换启动页背景


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值