web-dev-qa-db-ja.com

ファイルオブジェクトをビットマップに変換する

Universal-Image-Loaderを使用していますが、SDカードから画像のファイルキャッシュにアクセスするこの機能があります。しかし、返されたファイルキャッシュをビットマップに変換する方法がわかりません。基本的に、ビットマップをImageViewに割り当てたいだけです。

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

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

エラー:"ImageView型のsetImageBitmap(Bitmap)メソッドは、引数(File)には適用できません"

34
rahstame

BitmapFactoryを使用できるはずです:

File mSaveBit; // Your image file
String filePath = mSaveBit.getPath()  
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
mImageView.setImageBitmap(bitmap);
96
Karl
  1. ファイルを定義

    String fileName = "/myImage.jpg";
    File file = new File(fileName); 
    
  2. 画像のビットマップを取得

    Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
    
  3. ビットマップをImageViewに設定

    myImageView.setImageBitmap(bitmap);
    
10
Hardik Gajera

コトリンバージョン

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

この場合、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));
0
Bilal Mustafa

これは正しい質問ではありませんが、ImageLoaderのセットアップで.cacheInMemory()フラグを使用すると、BitmapFactoryを使用してメモリを安全に使用するため、ビットマップをいつでも再作成することなく取得できます。

ただ使用する:

ビットマップビットマップ= ImageLoader.getInstance()。getMemoryCache()・get( "url as key");

0
Euler Tiago