Я создал в Android асинтаксическую задачу, которая получает изображение из ссылки в виде растрового изображения и отображает его в просмотре изображения.
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");
Я получаю это на изображении
Изображение успешно отображается, но если каким-то образом изображение не существует или возникает ошибка подключения, я получаю пустое изображение, и я хотел бы знать, как я могу проверить, является ли возвращенное растровое изображение из doInBackground действительным изображением или нет, так что если не тогда, я бы установил видимость изображения в GONE
Вам не нужно устанавливать GONE, поскольку нулевое растровое изображение просто заставит пустое изображение.
Если точечный рисунок не равен нулю, значит он действителен. Хорошо, если у сервера хороший имидж ...
@greenapps ты прав, спасибо




Вероятно, было бы проще проверить, существует ли изображение и нет ли ошибки подключения, чем проверять, действителен ли BMP.