11

ファイルの保存:

FileOutputStream fo = null; 
try { 
        fo = this.openFileOutput("test.png", Context.MODE_WORLD_READABLE); 
} catch (FileNotFoundException e) { 
        e.printStackTrace(); 
} 
bitmap.compress(CompressFormat.PNG, 100, fo)

ファイルのロード:

String fname = this.getFilesDir().getAbsolutePath()+"/test.png"; 
Bitmap bMap = BitmapFactory.decodeFile(fname);
i.setImageBitmap(bMap);

最後の行はnullポインター例外を示していますが、BitmapFactory.decodeFileがnullを返すのはなぜですか?adbを使用してファイルをプルし、pngが正しく表示されるのを確認できるため、ファイルが正しく保存されていることを確認できます。

4

2 に答える 2

20

NullPointerExceptionがこの行に直接ある場合:

i.setImageBitmap(bMap);

次に、あなたの問題はそれiですnull。setImageBitmap()を呼び出しているとすると、それは---呼び出しが機能してiいるImageViewことを確認してくださいfindViewById()

また、以下を使用して取得する必要がありますfname

文字列fname=new File(getFilesDir()、 "test.png")。getAbsolutePath();

于 2010-08-02T15:03:31.127 に答える
2

DecodeFileメソッドでoptionsパラメーターを使用するときは、InJustDecodeBoundsプロパティがfalseに設定されていることを確認してください。設定されていない場合、常にnullが返されます。これは、ファイルをデコードするだけで、アプリ/コードでそれ以上必要ない場合にtrueに設定できます。このように、余分なメモリを割り当てる必要はありません。例については、こちらをご覧ください。

于 2016-10-14T08:07:35.973 に答える