最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Android的Splash啟動圖的兩種動態(tài)切換方式

 更新時間:2017年06月27日 10:47:48   作者:倔強的爐包  
本篇文章主要介紹了詳解Android的Splash啟動圖的兩種動態(tài)切換方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

冷啟動的時候因為要考慮網(wǎng)路原因,默認顯示一張本地圖片。

熱啟動的時候會根據(jù)獲取的啟動圖是否是新動態(tài)替換。

以下是實現(xiàn)動態(tài)替換的兩種方式:

Glide的緩存下載

Glide中的downloadOnly方法可實現(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();                 
       }                            
     }                              
   });

每次啟動的時候去獲取

 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攔截器,在用到下載圖片,所以就單獨提出來了。

  1. 創(chuàng)建一個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();
              //增加下載進度的獲取
              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();
        }
      });

獲取到的圖片重新命名再進行顯示。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android通過SOCKET下載文件的方法

    Android通過SOCKET下載文件的方法

    這篇文章主要介紹了Android通過SOCKET下載文件的方法,實例分析了Android使用Socket進行文件傳輸?shù)募记?需要的朋友可以參考下
    2015-12-12
  • Android開發(fā)中Intent.Action各種常見的作用匯總

    Android開發(fā)中Intent.Action各種常見的作用匯總

    今天小編就為大家分享一篇關(guān)于Android開發(fā)中Intent.Action各種常見的作用匯總,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Android開發(fā)筆記之探秘WebView

    Android開發(fā)筆記之探秘WebView

    瀏覽器控件是每個開發(fā)環(huán)境都具備的,這為馬甲神功提供了用武之地,windows的有webbrowser,android和ios都有webview。只是其引擎不同,相對于微軟的webbrowser,android及ios的webview的引擎都是webkit,對Html5提供支持。本篇主要介紹android的webview。
    2014-08-08
  • Android自帶的四種線程池使用總結(jié)

    Android自帶的四種線程池使用總結(jié)

    本篇文章主要介紹了Android自帶的四種線程池使用總結(jié),詳細的介紹了4種線程池的用法,具有一定的參考價值,有興趣的小伙伴可以了解一下
    2017-07-07
  • Android 仿微信發(fā)動態(tài)九宮格拖拽、刪除功能

    Android 仿微信發(fā)動態(tài)九宮格拖拽、刪除功能

    這篇文章主要介紹了Android 仿微信發(fā)動態(tài)九宮格拖拽、刪除功能,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • Android計算器編寫代碼

    Android計算器編寫代碼

    這篇文章主要為大家分享了Android計算器編寫代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Android實現(xiàn)平滑翻動效果

    Android實現(xiàn)平滑翻動效果

    這篇文章主要為大家詳細介紹了Android實現(xiàn)平滑翻動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Android百度地圖添加Marker失真問題的解決方案

    Android百度地圖添加Marker失真問題的解決方案

    本篇文章主要介紹了Android百度地圖添加Marker失真問題的解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • phonegap教程使用jspdf庫在應用中生成pdf文件(pdf生成方法)

    phonegap教程使用jspdf庫在應用中生成pdf文件(pdf生成方法)

    在PhoneGap應用中生成pdf文件,實現(xiàn)起來很簡單,使用JSPDF這個標準的JavaScript類庫來實現(xiàn)這個功能
    2014-01-01
  • Android開發(fā)自定義短信驗證碼實現(xiàn)過程詳解

    Android開發(fā)自定義短信驗證碼實現(xiàn)過程詳解

    這篇文章主要為大家介紹了Android開發(fā)自定義短信驗證碼實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06

最新評論

大渡口区| 田林县| 龙胜| 织金县| 犍为县| 岗巴县| 太原市| 合山市| 吴江市| 沂水县| 文水县| 台东县| 建平县| 龙里县| 云梦县| 定西市| 萨迦县| 讷河市| 栾川县| 平度市| 宁武县| 家居| 四川省| 山东| 津南区| 泉州市| 阳朔县| 沁阳市| 博兴县| 万山特区| 镇原县| 紫金县| 昌宁县| 定兴县| 寻甸| 明水县| 扎兰屯市| 滦平县| 牟定县| 原阳县| 永宁县|