2012-10-09 143 views
0

ImageView(來自URL的圖像)無法在片段中顯示(表示空白屏幕)。Android如何在片段中顯示來自URL的圖片

ImageView newsimage = (ImageView) findViewById(R.id.newsimg); 
ImageLoad downloader = new ImageLoad(newsimage); 
downloader.execute("http://www.mysite.com/pp.jpg"); 

這是正確的在活動頁面中顯示,但是當我改變Fragement,它不能顯示在所有。請讓我知道任何錯誤。

import java.io.IOException; 
import java.lang.ref.WeakReference; 
import java.net.MalformedURLException; 
import java.net.URL; 

import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.os.AsyncTask; 
import android.widget.ImageView; 

public class ImageLoad extends AsyncTask<String, Void, Bitmap> { 

    private String url; 
    private final WeakReference<ImageView> imageViewReference; 

    public ImageLoad(ImageView imageView) { 
     imageViewReference = new WeakReference<ImageView>(imageView); 
    } 

    protected Bitmap doInBackground(String... params) { 
     url = params[0]; 
     try { 
      return BitmapFactory.decodeStream(new URL(url).openConnection() 
        .getInputStream()); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
      return null; 
     } catch (IOException e) { 
      e.printStackTrace(); 
      return null; 
     } 
    } 

    protected void onPostExecute(Bitmap result) { 
     if (imageViewReference != null) { 
      ImageView imageView = imageViewReference.get(); 
      if (imageView != null) { 
       imageView.setImageBitmap(result); 
      } 
     } 
    } 

    protected void onPreExecute() { 
     if (imageViewReference != null) { 
      ImageView imageView = imageViewReference.get(); 
      if (imageView != null) { 
       imageView.setImageResource(R.drawable.no_image); 
      } 
     } 
    } 
} 
+0

你的例子在Activity中使用。我想要的是片段。 – ppshein

回答

-2

修復了這個問題,因爲我的變量傳遞是錯誤的。