Интересует вопрос подобной реализации, например: есть картинка на 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
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);
Комментариев нет:
Отправить комментарий