Страницы

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

среда, 29 января 2020 г.

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

#java #android #изображения


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


Ответы

Ответ 1



Хороший пример с наследованием загрузчика картинки от 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);

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

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