Ответ 1
Вы должны быть в состоянии использовать BitmapFactory
:
File mSaveBit; // Your image file
String filePath = mSaveBit.getPath()
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
mImageView.setImageBitmap(bitmap);
Я использую Universal-Image-Loader, и есть такая функция, которая обеспечивает доступ к файловому кэшу изображения с SD-карты. Но я не знаю, как преобразовать возвращаемый кеш файлов в растровое изображение. В основном я просто хотел назначить растровое изображение для ImageView.
File mSaveBit = imageLoader.getDiscCache().get(easyPuzzle);
Log.d("#ImageValue: ", ""+mSaveBit.toString());
mImageView.setImageBitmap(mSaveBit);
Ошибка: "Метод setImageBitmap (Bitmap) в типе ImageView не применим для аргументов (File)"
Вы должны быть в состоянии использовать BitmapFactory
:
File mSaveBit; // Your image file
String filePath = mSaveBit.getPath()
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
mImageView.setImageBitmap(bitmap);
Определить файл
String fileName = "/myImage.jpg";
File file = new File(fileName);
получить растровое изображение
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
Установить растровое изображение в ImageView
myImageView.setImageBitmap(bitmap);
Вот простой код для создания масштабированного изображения для ImageView в этом случае - Ширина: 400 - Высота: 400
final File file = new File(Environment.getExternalStorageDirectory(),"b.jpg");
ImageView img = (ImageView) findViewById(R.id.imageview);
img.setImageBitmap(Bitmap.createScaledBitmap(BitmapFactory.decodeFile(file.getAbsolutePath()),400,400,false));
Котлин версия
if (requestCode==PICK_IMAGE_REQUEST){
if (data!=null){
selectedfileUri=data.data
if (selectedfileUri!=null && !selectedfileUri!!.path.isEmpty()){
val file = FileUtils.getFile(context,selectedfileUri)
val bitmap = BitmapFactory.decodeFile(file.path)
uimg!!.setImageBitmap(bitmap)
}
}
}
Это не правильный вопрос, но если вы используете флаг .cacheInMemory() в настройке ImageLoader, вы можете получить растровое изображение без необходимости повторного создания в любое время, используя BitmapFactory для безопасного использования памяти.
Просто используйте:
Bitmap bitmap = ImageLoader.getInstance(). GetMemoryCache() · get ("url as key");