AndroidはネットワークのUrlリソースをDrawableリソース方式に変換します。


Overview
今日の開発学習では、AppのflashページにBingを追加する必要があります。これらは簡単ですが、画像のギャルを手に入れた時、私はとてもばつが悪い問題に出会いました。どのようにUrlをDrawablに変換し、ImageViewに追加しますか?
こちらで写真を取得したUrlは言いません。どうやってUrlをDrawableに変換するか見てみます。
UrlがDrawableに変換される
まずソースを見ます。

private Drawable loadImageFromNetwork(String imageUrl) {
 Drawable drawable = null;
 try {
  drawable = Drawable.createFromStream(
    new URL(imageUrl).openStream(), "image.jpg");
 } catch (IOException e) {
  Log.d("test", e.getMessage());
 }
 if (drawable == null) {
  Log.d("test", "null drawable");
 } else {
  Log.d("test", "not null drawable");
 }
 return drawable;
}
この部分は私達がネットのUrl資源をDrawable資源に変えました。
それから私達は私達のソースコードによって一波を分析します。
首相は我々がドラブルを作った。
そして私たちはUrl資源を通じてDrawable資源を生成します。
このように私達のUrlネットワークの資源はDrawableに変換して完成します。
補足知識:URL DrawableのAndroidからネットワーク画像を取得する3つの方法
Androidでネットワーク画像を取得するのは時間がかかる操作です。直接取得すると、アプリケーションが応答しない場合があります。この場合、一般的な方法は時間をかけてスレッドを使って行うことである。以下の3つの方法でurl画像を取得します。
1.直接取得:(容易:ANR、不推奨)

mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ; 
Drawable drawable = loadImageFromNetwork(IMAGE_URL); 
mImageView.setImageDrawable(drawable) ; 
共通の方法:

private Drawable loadImageFromNetwork(String imageUrl) 
{ 
 Drawable drawable = null; 
 try { 
  //              ,         
  drawable = Drawable.createFromStream( 
    new URL(imageUrl).openStream(), "image.jpg"); 
 } catch (IOException e) { 
  Log.d("test", e.getMessage()); 
 } 
 if (drawable == null) { 
  Log.d("test", "null drawable"); 
 } else { 
  Log.d("test", "not null drawable"); 
 } 
  
 return drawable ; 
} 
2.バックグラウンドスレッドはurl画像を取得する:

mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ; 
new Thread(new Runnable(){ 
 Drawable drawable = loadImageFromNetwork(IMAGE_URL); 
 @Override 
 public void run() { 
   
  // post()     ,   UI             
  mImageView.post(new Runnable(){ 
  @Override 
  public void run() { 
   // TODO Auto-generated method stub 
   mImageView.setImageDrawable(drawable) ; 
  }}) ; 
  } 
   
}).start() ; 
3.AsyncTask url写真を取得する

mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ; 
new DownloadImageTask().execute(IMAGE_URL) ; 
private class DownloadImageTask extends AsyncTask<String, Void, Drawable> 
{ 
   
  protected Drawable doInBackground(String... urls) { 
   return loadImageFromNetwork(urls[0]); 
  } 
 
  protected void onPostExecute(Drawable result) { 
   mImageView.setImageDrawable(result); 
  } 
} 
以上のAndroidはネットのUrl資源をDrawableの資源方式に転換しました。つまり、小編纂は皆さんに全部の内容を共有しました。参考にしてもらいたいです。どうぞよろしくお願いします。