Ich verwende den Universal-Image-Loader, und es gibt diese Funktion, die von der SD-Karte auf den Dateicache des Images zugreift. Ich weiß nicht, wie ich den zurückgegebenen Dateicache in Bitmap konvertieren kann. Grundsätzlich wollte ich die Bitmap nur einer ImageView zuordnen.
File mSaveBit = imageLoader.getDiscCache().get(easyPuzzle);
Log.d("#ImageValue: ", ""+mSaveBit.toString());
mImageView.setImageBitmap(mSaveBit);
Fehler: "Die Methode setImageBitmap (Bitmap) vom Typ ImageView ist für die Argumente (File) nicht anwendbar."
Sie sollten BitmapFactory
verwenden können:
File mSaveBit; // Your image file
String filePath = mSaveBit.getPath()
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
mImageView.setImageBitmap(bitmap);
Datei definieren
String fileName = "/myImage.jpg";
File file = new File(fileName);
bitmap des Bildes erhalten
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
Setzen Sie die Bitmap auf ImageView
myImageView.setImageBitmap(bitmap);
Kotlin-Version
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)
}
}
}
Hier ist ein einfacher Code, um in diesem Fall ein skaliertes Bild für ImageView zu erstellen - Breite: 400 - Höhe: 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));
Dies ist nicht die richtige Frage, aber wenn Sie das Flag .cacheInMemory () im ImageLoader-Setup verwenden, können Sie die Bitmap abrufen, ohne sie jederzeit mit BitmapFactory neu erstellen zu müssen, um die Speichernutzung zu sichern.
Benutz einfach:
Bitmap bitmap = ImageLoader.getInstance (). GetMemoryCache () · get ("URL als Schlüssel");