Подтвердить что ты не робот

Преобразование объекта файла в растровое изображение

Я использую Universal-Image-Loader, и есть такая функция, которая обеспечивает доступ к файловому кэшу изображения с SD-карты. Но я не знаю, как преобразовать возвращаемый кеш файлов в растровое изображение. В основном я просто хотел назначить растровое изображение для ImageView.

File mSaveBit = imageLoader.getDiscCache().get(easyPuzzle);

Log.d("#ImageValue: ", ""+mSaveBit.toString());
mImageView.setImageBitmap(mSaveBit);

Ошибка: "Метод setImageBitmap (Bitmap) в типе ImageView не применим для аргументов (File)"

4b9b3361

Ответ 1

Вы должны быть в состоянии использовать BitmapFactory:

File mSaveBit; // Your image file
String filePath = mSaveBit.getPath()  
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
mImageView.setImageBitmap(bitmap);

Ответ 2

  • Определить файл

    String fileName = "/myImage.jpg";
    File file = new File(fileName); 
    
  • получить растровое изображение

    Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
    
  • Установить растровое изображение в ImageView

    myImageView.setImageBitmap(bitmap);
    

Ответ 3

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

Ответ 4

Котлин версия

  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)
                }
            }
        }

Ответ 5

Это не правильный вопрос, но если вы используете флаг .cacheInMemory() в настройке ImageLoader, вы можете получить растровое изображение без необходимости повторного создания в любое время, используя BitmapFactory для безопасного использования памяти.

Просто используйте:

Bitmap bitmap = ImageLoader.getInstance(). GetMemoryCache() · get ("url as key");