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

Retrofit Rxjava實現(xiàn)圖片下載、保存并展示實例

 更新時間:2017年06月14日 10:15:12   作者:six_god_2  
本篇文章主要介紹了Retrofit Rxjava實現(xiàn)圖片下載、保存并展示實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下

首先我們看一下Retrofit常規(guī)的用法,在不使用Rxjava的情況下,我們默認(rèn)返回的是Call。

public interface ServiceApi { 
   
  //下載文件 
  @GET 
  Call<ResponseBody> downloadPicFromNet(@Url String fileUrl); 
 
} 

但是如果我們要配合Rxjava使用,那么就要按照如下方式來重新定義我們的方法:

@GET 
Observable<ResponseBody> downloadPicFromNet(@Url String fileUrl); 

返回一個Observable,方法名很直觀就是從網(wǎng)絡(luò)下載圖片 參數(shù)是圖片的URL路徑

完成請求接口的定義,我們接下來創(chuàng)建Retrofit 對象

Retrofit retrofit = new Retrofit.Builder() 
.baseUrl(BASE_URL) 
.addCallAdapterFactory(RxJavaCallAdapterFactory.create()) //添加Rxjava 
.addConverterFactory(GsonConverterFactory.create()) // <span style="font-family: Arial, Helvetica, sans-serif;">定義轉(zhuǎn)化器 可以將結(jié)果返回一個json格式</span> 
.build(); 

接下來我們給剛才定義的ServiceApi創(chuàng)建實例,通過上面創(chuàng)建的retrofit來創(chuàng)建

ServiceApi serviceApi = retrofit.create(ServiceApi.class); 

ok,現(xiàn)在我們可以通過serviceApi來調(diào)用我們剛才定義的 downloadPicFromNet方法來下載一張圖片,可以隨意百度一張圖片,復(fù)制圖片地址來做測試。

serviceApi.downloadPicFromNet("http://pic41.nipic.com/20140509/4746986_145156378323_2.jpg") 
.subscribeOn(Schedulers.newThread())//在新線程中實現(xiàn)該方法 
.map(new Func1<ResponseBody, Bitmap>() { 
 
  @Override 
  public Bitmap call(ResponseBody arg0) { 
    if(saveFileToDisc(arg0)) {//保存圖片成功 
      Bitmap bitmap = BitmapFactory.decodeFile(getExternalFilesDir(null) + File.separator + "baidu.png"); 
      return bitmap;//返回一個bitmap對象 
    } 
    return null; 
  } 
}) 
.observeOn(AndroidSchedulers.mainThread())//在Android主線程中展示 
.subscribe(new Subscriber<Bitmap>() { 
   
  ProgressDialog dialog = new ProgressDialog(MainActivity.this); 
   
 
  @Override 
  public void onStart() { 
    dialog.show(); 
    super.onStart(); 
  } 
 
  @Override 
  public void onCompleted() { 
    dialog.dismiss(); 
  } 
 
  @Override 
  public void onError(Throwable arg0) { 
    Log.d(TAG, "onError ===== " + arg0.toString()); 
  } 
 
  @Override 
  public void onNext(Bitmap arg0) { 
    imageIv.setImageBitmap(arg0); 
     
  } 
}); 

上面的示例就實現(xiàn)了一個下載、保存、并展示的過程,跟傳統(tǒng)的AsyncTask相比,代碼很簡潔,沒有很多回調(diào)。當(dāng)然在實際使用中還可以封裝一層,把Retrofit 和 ServiceApi 的創(chuàng)建放在一個ServiceApiImpl的實現(xiàn)類中。

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

相關(guān)文章

  • Android酷炫動畫效果之3D星體旋轉(zhuǎn)效果

    Android酷炫動畫效果之3D星體旋轉(zhuǎn)效果

    本文要實現(xiàn)的3D星體旋轉(zhuǎn)效果是從CoverFlow演繹而來,不過CoverFlow只是對圖像進行轉(zhuǎn)動,我這里要實現(xiàn)的效果是要對所有的View進行類似旋轉(zhuǎn)木馬的轉(zhuǎn)動
    2018-05-05
  • Android如何繪制發(fā)光效果詳解

    Android如何繪制發(fā)光效果詳解

    這篇文章主要給大家介紹了關(guān)于Android如何繪制發(fā)光效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Android Studio實現(xiàn)登錄功能案例講解

    Android Studio實現(xiàn)登錄功能案例講解

    這篇文章主要介紹了Android Studio實現(xiàn)登錄功能案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Android TextView實現(xiàn)圖文混合編排的方法

    Android TextView實現(xiàn)圖文混合編排的方法

    這篇文章主要為大家詳細(xì)介紹了Android TextView實現(xiàn)圖文混合編排的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Android如何解決虛擬按鍵欄遮擋問題

    Android如何解決虛擬按鍵欄遮擋問題

    這篇文章主要介紹了Android如何解決虛擬按鍵欄遮擋問題,幫助大家更好的理解和學(xué)習(xí)使用Android開發(fā),感興趣的朋友可以了解下
    2021-03-03
  • Android畫廊效果之ViewPager顯示多個圖片

    Android畫廊效果之ViewPager顯示多個圖片

    這篇文章主要為大家詳細(xì)介紹了Android畫廊效果之ViewPager顯示多個圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Android中監(jiān)聽判斷網(wǎng)絡(luò)連接狀態(tài)的方法

    Android中監(jiān)聽判斷網(wǎng)絡(luò)連接狀態(tài)的方法

    這篇文章主要介紹了Android中監(jiān)聽判斷網(wǎng)絡(luò)連接狀態(tài)的方法,介紹了是否有網(wǎng)絡(luò)連接判斷、連接的類型和監(jiān)聽網(wǎng)絡(luò)狀態(tài)的方法,需要的朋友可以參考下
    2014-06-06
  • android monkey自動化測試改為java調(diào)用monkeyrunner Api

    android monkey自動化測試改為java調(diào)用monkeyrunner Api

    一般情況下我們使用android中的monkeyrunner進行自動化測試時,使用的是python語言來寫測試腳本。不過,最近發(fā)現(xiàn)可以用java調(diào)用monkeyrunner Api,于是,就簡單研究了一下。這里做一些總結(jié)。希望有對在研究的午飯可以有所用處
    2012-11-11
  • 一款不錯的android6.0、7.0權(quán)限管理器推薦

    一款不錯的android6.0、7.0權(quán)限管理器推薦

    下面小編就為大家分享一篇一款不錯的android6.0、7.0權(quán)限管理器推薦,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Android手勢識別器GestureDetector使用詳解

    Android手勢識別器GestureDetector使用詳解

    這篇文章主要為大家詳細(xì)介紹了Android手勢識別器GestureDetector的使用方法解,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03

最新評論

镇远县| 乐清市| 乌兰察布市| 黄平县| 开远市| 奇台县| 衡阳市| 益阳市| 芷江| 大邑县| 钟山县| 澳门| 淮滨县| 安乡县| 广丰县| 锡林郭勒盟| 苏尼特右旗| 新巴尔虎右旗| 大足县| 九江县| 松原市| 民丰县| 信宜市| 常宁市| 海兴县| 龙州县| 阿巴嘎旗| 奎屯市| 舞阳县| 柏乡县| 泸溪县| 灯塔市| 徐闻县| 海淀区| 泸西县| 江源县| 百色市| 北京市| 永康市| 鹤峰县| 新乐市|