さて、私はギャラリーアプリケーションを持っています。そこにはたくさんの画像があります(res / drawable)。
選択すると、壁紙ボタンとして設定でき、それが表示されます。
この画像を選択して、[電話に保存]または[SDカード]ボタンで保存します。どうすればそれを管理できますか。アプリケーションフォルダの解像度から電話またはSDカードにコピーしています。ImageViewから取得するのではなく、元のファイルをresからPhoneにコピーするだけです。
このコードを試してください:
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/saved_images");
myDir.mkdirs();
Random generator = new Random();
int n = 10000;
n = generator.nextInt(n);
String fname = "Image-"+ n +".jpg";
File file = new File (myDir, fname);
if (file.exists ()) file.delete ();
try {
FileOutputStream out = new FileOutputStream(file);
finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
マニフェストファイルに追加します。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
手順に従ってください :-
Bitmap
を使用して 作成しますOutputStream
を使用してビットマップの内容を書き込みますコード:
String path = Environment.getExternalStorageDirectory().toString();
OutputStream fOut = null;
file = new File(path, "image.jpg");
fOut = new FileOutputStream(file);
Bitmap bitmap = BitmapFactory.decodeResource (getResources(), R.drawable.xyz);
bitmap.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
fOut.flush();
fOut.close();
MediaStore.Images.Media.insertImage(getContentResolver(),file.getAbsolutePath(),file.getName(),file.getName());