RXjava網絡獲取圖片數據的方法

這篇文章主要爲大家詳細介紹了RXjava網絡獲取圖片數據,具有一定的參考價值,感興趣的小夥伴們可以參考一下

本文實例爲大家分享了RXjava網絡獲取圖片數據的具體代碼,供大家參考,具體內容如下

RXjava

// An highlighted block
image = findViewById(R.id.tu);

  Observable.create(new ObservableOnSubscribe<Bitmap>() {
   @Override
   public void subscribe(ObservableEmitter<Bitmap> e) throws Exception {
    e.onNext(getBitmap());
   }
  })
    //設置數據在子線程中遍歷
    .subscribeOn(Schedulers.io())
    //設置圖片在主線程中加載
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(new Observer<Bitmap>() {
     @Override
     public void onSubscribe(Disposable d) {

     }

     @Override
     public void onNext(Bitmap bitmap) {
      image.setImageBitmap(bitmap);
     }

     @Override
     public void onError(Throwable e) {

     }

     @Override
     public void onComplete() {

     }
    });
  image.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {
    Toast.makeText(MainActivity.this, "ee", Toast.LENGTH_SHORT).show();
   }
  });
  image.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {

   }
  });

網絡獲取數據

// An highlighted block
//獲取網絡數據
 private Bitmap getBitmap() {
  String str = "https://b-ssl.duitang.com/uploads/blog/201406/16/20140616171020_TiEXR.thumb.700_0.jpeg";
  try {
   URL url = new URL(str);
   HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
   urlConnection.setRequestMethod("GET");
   urlConnection.setConnectTimeout(2000);
   urlConnection.connect();
   if(urlConnection.getResponseCode() == 200){
    return BitmapFactory.decodeStream(urlConnection.getInputStream());
   }
  } catch (MalformedURLException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  return null;
 }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持神馬文庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章