0

写真をクリックしてSDカードに保存するカメラアプリがあり、デコードするとヌルビットマップが得られることがコードです

Bitmap bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"FacePhoto.jpg");

顔写真ファイルがSDカードに存在するddmsをチェックインしました

ここで「null」ビットマップを取得するという問題が発生する可能性があります

4

5 に答える 5

1

このように確認するだけで、画像パスに問題がある可能性があります

File rootDir = Environment.getExternalStorageDirectory();
File file = new File(rootDir + "/FacePhoto.jpg");

if (file.exists())
{
    Bitmap bitmap = BitmapFactory.decodeFile(file);

}
else
{
   System.out.println("File Not Exists. Check the path!!");
}
于 2012-10-05T05:45:28.813 に答える
1

スラッシュがありません。次のようにコードを変更してください。

Bitmap bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/FacePhoto.jpg"); 
于 2012-10-05T05:45:35.897 に答える
0

以下を試してください:

     FileInputStream instream = new FileInputStream("/sdcard/Pics/Image.png"); 
            BufferedInputStream bif = new BufferedInputStream(instream); 
            byteImage1 = new byte[bif.available()]; 
            bif.read(byteImage1); 
             BitmapFactory.decodeByteArray(byteImage1, 0, byteImage1.length);
于 2012-10-05T05:58:19.473 に答える
0

使ってみて

Environment.getExternalStorageDirectory()+"/FacePhoto.jpg"

「ファイル名」の代わりに「/ファイル名」を使用してください。

これが機能しない場合は、使用してみてください

Environment.getExternalStorageDirectory().getAbsolutePath()+"/FacePhoto.jpg"

注意すべき点は、相対パスではなく絶対パスを使用することです。

また、コード内でファイル名のスペルが正しいかどうかも確認してください。

于 2012-10-05T05:43:47.613 に答える
0

アクティビティの結果では、このように使用する必要があります。

if (requestCode == CAMERA) {
                final File file = getTempFile();

                new Thread(new Runnable() {

                    @Override
                    public void run() {
                        try {
                            selPath = file.getAbsolutePath();
                            final String selectedImagePath = file
                                    .getAbsolutePath();
                            bitmap = BitmapFactory
                                    .decodeFile(selectedImagePath);
                            selPath = selectedImagePath;

                        } catch (Exception e) {
                            Log.v(TAG, "Exception: " + e.toString());
                            handler.sendEmptyMessage(IMAGENOTLOADED);
                        }
                    }
                }).start();
            }

getTempFile メソッドはこのようなものです

private File getTempFile() {
    final File path = new File(Environment.getExternalStorageDirectory(),
            getPackageName());
    if (!path.exists()) {
        path.mkdir();
    }
    return new File(path, fileName);
}
于 2012-10-05T05:45:25.177 に答える