11

外部ストレージから画像を読み込もうとしています。アクセス許可を設定し、さまざまな方法を試しましたが、どれも機能しません。

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

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

    tv.setImageBitmap(bitmap);

そしてこれ、

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

    tv.setImageBitmap(bitmap);
        streamIn.close();
4

5 に答える 5

25

次にファイルabc.jpgがあるsdcard場合:

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

と取得しますbitmap

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

また

Bitmap bitmap1 = BitmapFactory.decodeFile(photoPath);

メモリ不足エラーを回避するには、以下のコードを使用することをお勧めします...

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

上記の問題を回避するには、Picasso (Android 用の強力な画像ダウンロードおよびキャッシュ ライブラリ) を使用できます。

ドキュメンテーション

方法?

Picasso.with(context).load("file:///android_asset/DvpvklR.png").into(imageView2);
Picasso.with(context).load(new File(...)).into(imageView3);
于 2013-04-10T06:18:35.317 に答える
5
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();
于 2013-04-10T06:19:06.793 に答える
0

という機能があります。

createFromPath(String)

Drawable クラスで。だから声明は

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

描画可能なオブジェクトを返します

于 2016-06-24T06:54:37.307 に答える
0

以下のように、フォルダーから画像のパスを取得します。次に、ファイルをビットマップとしてデコードします。

   File file= new File(android.os.Environment.getExternalStorageDirectory(),"Your folder");
   Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath())
于 2013-04-10T06:28:44.663 に答える
0

ファイル パスがある場合は、BitmapFactory を直接使用しますが、アルファを保持する形式を使用するように指示します。

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

options.inPreferredConfig = Bitmap.Config.ARGB_8888;

Bitmap bitmap = BitmapFactory.decodeFile(photoPath, options);
selected_photo.setImageBitmap(bitmap);
于 2014-02-17T12:34:50.037 に答える