Universal-Image-Loaderを使用していますが、SDカードから画像のファイルキャッシュにアクセスするこの機能があります。しかし、返されたファイルキャッシュをビットマップに変換する方法がわかりません。基本的に、ビットマップをImageViewに割り当てたいだけです。
File mSaveBit = imageLoader.getDiscCache().get(easyPuzzle);
Log.d("#ImageValue: ", ""+mSaveBit.toString());
mImageView.setImageBitmap(mSaveBit);
エラー:"ImageView型のsetImageBitmap(Bitmap)メソッドは、引数(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);
コトリンバージョン
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)
}
}
}
この場合、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));
これは正しい質問ではありませんが、ImageLoaderのセットアップで.cacheInMemory()フラグを使用すると、BitmapFactoryを使用してメモリを安全に使用するため、ビットマップをいつでも再作成することなく取得できます。
ただ使用する:
ビットマップビットマップ= ImageLoader.getInstance()。getMemoryCache()・get( "url as key");