import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.widget.ImageView;
import java.io.InputStream;
public class ImageViewLoader extends AsyncTask<String, Void, Bitmap>
{
ImageView bmImage;
public ImageViewLoader(ImageView bmImage)
{
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls)
{
String urldisplay = urls[0];
Bitmap bitmap = null;
try
{
InputStream in = new java.net.URL(urldisplay).openStream();
bitmap = BitmapFactory.decodeStream(in);
}
catch (Exception e)
{
e.printStackTrace();
}
return bitmap;
}
protected void onPostExecute(Bitmap result)
{
bmImage.setImageBitmap(result);
}
}
如果我运行这个例子
ImageViewLoader loader=new ImageViewLoader(imageView);
loader.execute("http://localhost:8000/media/12");
图像显示成功,但如果图像不存在或连接错误,我会得到一个空的imageview,我想知道如何检查从doInBackground返回的位图是否是有效的图像,如果不是,那么我将把imageview可见性设置为GONE