Я новичок в программировании, так что терпите меня, это большой опыт для меня, и это было очень весело.
Я пытаюсь загрузить изображение, которое я изменяю, в свое приложение и регулярно загружать его на свой сервер. Сейчас он загружает изображение размещения до тех пор, пока в фоновом режиме не будет загружено нужное изображение, а затем покажет новое загруженное изображение.
Моя проблема в том, что если нет сетевого подключения, оно вообще ничего не показывает. Я предполагаю, что есть кое-что, что я могу сделать в PostExecute, чтобы в приложении не отображалось изображение, если оно не загружает изображение из сети.
Любая помощь будет принята с благодарностью!
РЕДАКТИРОВАТЬ: я на правильном пути к отображению альтернативного изображения?
import java.io.IOException;
import java.lang.ref.WeakReference;
import java.net.MalformedURLException;
import java.net.URL;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.widget.ImageView;
import android.widget.Toast;
public class ImageDownloader extends AsyncTask<String, Void, Bitmap> {
private String url;
private final WeakReference<ImageView> imageViewReference;
private Resources res;
public ImageDownloader(ImageView imageView) {
imageViewReference = new WeakReference<ImageView>(imageView);
}
@Override
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) {
return BitmapFactory.decodeResource(res, R.drawable.displayThis);
}
}
@Override
protected void onPostExecute(Bitmap result) {
if (isCancelled()) {
result = null;
}
if (imageViewReference != null) {
ImageView imageView = imageViewReference.get();
if (imageView != null) {
imageView.setImageBitmap(result);
}
}
}
@Override
protected void onPreExecute() {
if (imageViewReference != null) {
ImageView imageView = imageViewReference.get();
if (imageView != null) {
imageView.setImageResource(R.drawable.uboxback);
}
}
}
}