Android中怎么動(dòng)態(tài)切換Splash啟動(dòng)圖

Android中怎么動(dòng)態(tài)切換Splash啟動(dòng)圖,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

十余年的樂平網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整樂平建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“樂平網(wǎng)站設(shè)計(jì)”,“樂平網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

Glide的緩存下載

Glide中的downloadOnly方法可實(shí)現(xiàn)圖片的下載功能

圖片下載

Observable.just(RetrofitHelper.API_BASE_URL + img)            
   .subscribeOn(Schedulers.newThread())               
   .subscribe(new Action1<String>() {                
     @Override                          
     public void call(String s) {                 
       try {                          
         Glide.with(getApplicationContext())         
             .load(s)                   
             .downloadOnly(720, 1280)           
             .get();                   
       } catch (InterruptedException | ExecutionException e) { 
         e.printStackTrace();                 
       }                            
     }                              
   });

每次啟動(dòng)的時(shí)候去獲取

 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的本地下載

考慮到項(xiàng)目中用到的client是okhttp并統(tǒng)一了Interceptor攔截器,在用到下載圖片,所以就單獨(dú)提出來了。

  1. 創(chuàng)建一個(gè)service,并在配置文件AndroidManifest.xml中注冊

  2. 在獲取到圖片地址之后startService(),并傳遞到service中

  3. 在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<ResponseBody>() {
        @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();
              //增加下載進(jìn)度的獲取
              Log.d("TAG---", sum + "/" + contentLength);
            }
           fos.close();
           bis.close();
           is.close();
          } catch (IOException e) {
            e.printStackTrace();
          } finally {
            stopSelf();
          }
        }
      }, new Action1<Throwable>() {
        @Override
        public void call(Throwable throwable) {
          stopSelf();
        }
      });

獲取到的圖片重新命名再進(jìn)行顯示。

關(guān)于Android中怎么動(dòng)態(tài)切換Splash啟動(dòng)圖問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。

標(biāo)題名稱:Android中怎么動(dòng)態(tài)切換Splash啟動(dòng)圖
網(wǎng)頁地址:http://bm7419.com/article28/igsocp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、微信小程序網(wǎng)站排名、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站營銷建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)