私のドロウアブルフォルダの下にpngファイルがあり、それを私の物理的なデバイスのいくつかのフォルダに保存します。画像をDrawableの下に保存する
私はすでに書き込み権限とすべてを持っていますが、いつも私が望むことをすることはできません。興味深いのは、画像を保存するのに10回試してみると、それは何とか2回、それ以上は管理していないということです。私はLG 3、アンドロイド5.0、API使用しています
21.私は昨日試したとき、私は私が画像を見たギャラリーを探していたとき、それは
私はまたに管理..しかし、今日の画像を保存していませんAPI 22とエミュレータで画像を保存しませんが、決してAPI 24
とこれがコードです:
ActivityCompat.requestPermissions(ShareActivity.this,new String[] {android.Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
Bitmap image = BitmapFactory.decodeResource(getResources(),R.drawable.instagram_logo);
File path = Environment.getExternalStorageDirectory();
File dir = new File(path + "/savehere/");
if(!dir.exists())
{
dir.mkdirs();
}
else
{
Toast.makeText(mContext, "Directory already exists", Toast.LENGTH_SHORT).show();
}
File file = new File(dir,"photo.png");
OutputStream out = null;
try
{
out = new FileOutputStream(file);
image.compress(Bitmap.CompressFormat.PNG,80,out);
out.flush();
out.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
'dir.mkdirs()から借り、それはディレクトリを作成するために失敗することがありますよう'戻り値を確認してください。そうであれば、ユーザーにトーストを表示して戻ります。存在しないディレクトリにファイルを置く場合は、続行することはあまり意味がありません。 – greenapps
これらのキャッチブロックにToast()を入れて、あなたのアプリのユーザーにその例外について通知するようにします。 ...そしてあなたもあまりに... – greenapps
「私はギャラリーを見ていましたが、私はイメージを見ました。ファイルが作成されているかどうかを確認するには、ギャラリーアプリを使用しないでください。完全に間違っている。ファイルエクスプローラアプリを使用して、そのディレクトリを調べる必要があります。 – greenapps