OnActivityResult не обновляет ImageView с использованием Picasso
Используя следующий код для просмотра захваченного изображения в ImageView
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(this.requestCode == requestCode && resultCode == RESULT_OK) {
File imageFile = new File(Environment.getExternalStorageDirectory() + "/img.jpeg");
Picasso.with(MainActivity.this).load(imageFile).into(imageView);
}
}
Проблема: Как я могу обновить ImageView
в onActivityResult(...)
как вы можете видеть, я использую приведенный выше код, но всегда получаю предварительный просмотр старого изображения, в то время как я получаю новое изображение в хранилище
2 ответа
Решение
Вы можете заменить код на эти строки кода:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(this.requestCode == requestCode && resultCode == RESULT_OK) {
File imageFile = new File(Environment.getExternalStorageDirectory() + "/img.jpeg");
Picasso.with(MainActivity.this)
.load(imageFile)
.memoryPolicy(MemoryPolicy.NO_CACHE)
.networkPolicy(NetworkPolicy.NO_CACHE)
.error(R.drawable.ic_lanucher)
.noFade()
.into(imageView)
}
}
Если вы хотите загрузить захваченное изображение, вам нужно получить растровое изображение из данных, т.е. вашего объекта Intent.
if (responseCode == RESULT_OK && data != null) {
Bitmap bitmap = (Bitmap) data.getExtras().get("data");
if (bitmap != null) {
// Here you will get bitmap , set bitmap in imageview
}
}