重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Android中怎么动态切换Splash启动图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
十余年的乐平网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整乐平建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“乐平网站设计”,“乐平网站推广”以来,每个客户项目都认真落实执行。
Glide的缓存下载
Glide中的downloadOnly方法可实现图片的下载功能
图片下载
Observable.just(RetrofitHelper.API_BASE_URL + img) .subscribeOn(Schedulers.newThread()) .subscribe(new Action1() { @Override public void call(String s) { try { Glide.with(getApplicationContext()) .load(s) .downloadOnly(720, 1280) .get(); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } } });
每次启动的时候去获取
File file = new File(sp_splash_logo); if (file.exists()) { Glide.with(getApplicationContext()).load(file).into(mIvSplash); } else { mIvSplash.setImageResource(R.mipmap.splash); }
Retofit+RxJava的本地下载
考虑到项目中用到的client是okhttp并统一了Interceptor拦截器,在用到下载图片,所以就单独提出来了。
创建一个service,并在配置文件AndroidManifest.xml中注册
在获取到图片地址之后startService(),并传递到service中
在service的onStartCommand()方法中获取到图片地址,并创建ImgServise开始下载
下载的代码如下
Retrofit retrofit = new Retrofit.Builder() .baseUrl(RetrofitHelper.API_BASE_URL) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); ImgServise imgServise = retrofit.create(ImgServise.class); imgServise.downloadPicFromNet(img) .subscribeOn(Schedulers.newThread()) .subscribe(new Action1() { @Override public void call(ResponseBody responseBody) { try { long contentLength = responseBody.contentLength(); InputStream is = responseBody.byteStream(); File file = new File(Environment.getExternalStorageDirectory(), BuildConfig.APPLICATION_ID + "splash.png"); FileOutputStream fos = new FileOutputStream(file); BufferedInputStream bis = new BufferedInputStream(is); byte[] buffer = new byte[1024]; int len; long sum = 0L; while ((len = bis.read(buffer)) != -1) { fos.write(buffer, 0, len); sum += len; fos.flush(); //增加下载进度的获取 Log.d("TAG---", sum + "/" + contentLength); } fos.close(); bis.close(); is.close(); } catch (IOException e) { e.printStackTrace(); } finally { stopSelf(); } } }, new Action1 () { @Override public void call(Throwable throwable) { stopSelf(); } });
获取到的图片重新命名再进行显示。
关于Android中怎么动态切换Splash启动图问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。