Android Ошибка загрузки изображения

Я пытаюсь загрузить изображение в мое изображение, но он не загружает изображения для ссылки. Ссылка имеет изображение, но я все равно получаю пустое пустое пространство.

private class LoadImage extends AsyncTask<string, string,="" bitmap=""> {
 @Override
 protected void onPreExecute() {
 super.onPreExecute();
 }
 protected Bitmap doInBackground(String... args) {
 try {
 String url = "http://www.learn2crack.com/wp-content/uploads/2014/04/node-cover-720x340.png";
 URL urlurl = new URL(url);
 bitmap = BitmapFactory.decodeStream(urlurl.openConnection().getInputStream());
 } catch (Exception e) {
 e.printStackTrace();
 }
 return bitmap;
 }
 protected void onPostExecute(Bitmap image) {
 if(image != null){
 img.setImageBitmap(image);
 }else{
 Toast.makeText(activity.getApplicationContext(), "Image Does Not exist or Network Error", Toast.LENGTH_SHORT).show();
 }
 }
 }
</string,>

XML

                
1 ответ

Как вы можете видеть в logcat stacktrace, у вас есть сеть с исключением mainthread, потому что вы выполняете сетевую задачу в "основном" потоке, который также называется потоком gui. Для этого вам нужно использовать AsyncTask.

private class DownloadImageTask extends AsyncTask<object, void,="" bitmap=""> {
 @Override
 protected Bitmap doInBackground(Object... args) {
 Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
 return bmp;
 }

 @Override
 protected void onPostExecute(Bitmap result) {
 //here do stuff with your bitmap data, also here you can interact with the gui
 }
 }
</object,>

Также я рекомендую использовать библиотеку загрузки изображений для загрузки изображений из Интернета. Они действительно легко загружают изображения, и вам не нужно много беспокоиться о крошечных деталях.

licensed under cc by-sa 3.0 with attribution.