Android中怎么動態(tài)切換Splash啟動圖,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
十余年的樂平網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應快,48小時及時工作處理。成都全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整樂平建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)建站從事“樂平網(wǎng)站設(shè)計”,“樂平網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
Glide的緩存下載
Glide中的downloadOnly方法可實現(xiàn)圖片的下載功能
圖片下載
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并統(tǒng)一了Interceptor攔截器,在用到下載圖片,所以就單獨提出來了。
創(chuàng)建一個service,并在配置文件AndroidManifest.xml中注冊
在獲取到圖片地址之后startService(),并傳遞到service中
在service的onStartCommand()方法中獲取到圖片地址,并創(chuàng)建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(); } });
獲取到的圖片重新命名再進行顯示。
關(guān)于Android中怎么動態(tài)切換Splash啟動圖問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。