it-swarm.com.de

Lesen Sie ein Bild/eine Datei von externem Speicher

Ich versuche, ein Bild von einem externen Speicher zu laden. Ich habe die Berechtigungen festgelegt, ich habe verschiedene Möglichkeiten ausprobiert, aber keine davon funktioniert.

BitmapFactory.Options options = new BitmapFactory.Options();
    options.inPreferredConfig = Bitmap.Config.ARGB_8888;

    Bitmap bitmap = BitmapFactory.decodeFile(file.toString()); 

    tv.setImageBitmap(bitmap);

und das hier,

FileInputStream streamIn = new FileInputStream(file);
Bitmap bitmap = BitmapFactory.decodeStream(streamIn); 

    tv.setImageBitmap(bitmap);
        streamIn.close();
6
Ramin Anushir

Wenn ich die Datei abc.jpg auf der sdcard habe, dann:

String photoPath = Environment.getExternalStorageDirectory() + "/abc.jpg";

und um bitmap zu bekommen.

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bitmap = BitmapFactory.decodeFile(photoPath, options);

oder

Bitmap bitmap1 = BitmapFactory.decodeFile(photoPath);

Um Speicherfehler zu vermeiden Ich schlage vor, dass Sie den folgenden Code verwenden ...

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
final Bitmap b = BitmapFactory.decodeFile(photoPath, options);

Um das oben genannte Problem zu vermeiden, können Sie Picasso (eine leistungsfähige Bibliothek zum Herunterladen und Zwischenspeichern von Bildern für Android) verwenden.

Dokumentation

Wie man?

Picasso.with(context).load("file:///Android_asset/DvpvklR.png").into(imageView2);
Picasso.with(context).load(new File(...)).into(imageView3);
22
File sdCard = Environment.getExternalStorageDirectory();

File directory = new File (sdCard.getAbsolutePath() + "/Pictures");

File file = new File(directory, "image_name.jpg"); //or any other format supported

FileInputStream streamIn = new FileInputStream(file);

Bitmap bitmap = BitmapFactory.decodeStream(streamIn); //This gets the image

streamIn.close();
3
Shiv

Es gibt eine Funktion namens

createFromPath(String)

in der Klasse Drawable. Also die Aussage

String path="/storage/..<just type in the path>";
Drawable.createFromPath(path);

wird ein Zeichenobjekt zurückgeben

0
Samarth S

Wenn Sie einen Dateipfad haben, verwenden Sie einfach BitmapFactory direkt, sagen Sie ihm jedoch, dass Sie ein Format verwenden sollten, das Alpha enthält:

BitmapFactory.Options options = new BitmapFactory.Options();

options.inPreferredConfig = Bitmap.Config.ARGB_8888;

Bitmap bitmap = BitmapFactory.decodeFile(photoPath, options);
selected_photo.setImageBitmap(bitmap);
0
rishikesh

Holen Sie sich den Pfad des Bildes aus Ihrem Ordner wie folgt. Und dann die Datei als Bitmap dekodieren.

   File file= new File(Android.os.Environment.getExternalStorageDirectory(),"Your folder");
   Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath())
0
Raghunandan