Страницы

Поиск по вопросам

понедельник, 1 апреля 2019 г.

Загрузка картинок из сети в приложение Android

Интересует вопрос подобной реализации, например: есть картинка на html странице, как мне загрузить её в приложение и показать в ImageView? В программировании новичок, может подскажете ресурсы и либы?


Ответ

Хороший пример с наследованием загрузчика картинки от AsyncTask и определением своего метода doInBackground(), взятый с английского SO, который взял его с Android Developers, который уже его убрал.
Сам AsyncTask представляет собой реализацию короткого асинхронного запроса для основного GUI потока без необходимости самому ковырятся с потоками.
// Показать картинку new DownloadImageTask((ImageView) findViewById(R.id.imageView1)) .execute("http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png"); }
public void onClick(View v) { startActivity(new Intent(this, IndexActivity.class)); finish();
}
private class DownloadImageTask extends AsyncTask { ImageView bmImage;
public DownloadImageTask(ImageView bmImage) { this.bmImage = bmImage; }
protected Bitmap doInBackground(String... urls) { String urldisplay = urls[0]; Bitmap mIcon11 = null; try { InputStream in = new java.net.URL(urldisplay).openStream(); mIcon11 = BitmapFactory.decodeStream(in); } catch (Exception e) { Log.e("Ошибка передачи изображения", e.getMessage()); e.printStackTrace(); } return mIcon11; }
protected void onPostExecute(Bitmap result) { bmImage.setImageBitmap(result); } }
И в манифесте для приложения нужно конечно же разрешить загрузку:

Если нужно быстро и без всякой асинхронности, обработки ошибок и.т.д.:
URL newurl = new URL(image_location_url); mIcon_val = BitmapFactory.decodeStream(newurl.openConnection() .getInputStream()); myImageView.setImageBitmap(mIcon_val);
Для совсем ленивых однострочник на Picasso
Picasso.with(context).load(myImageURL).into(imageView);

Комментариев нет:

Отправить комментарий