String saveDir = Environment.getExternalStorageDirectory().getPath()+"/test";
File file = new File(saveDir);
if(!file.exists()){
if(!file.mkdir()){
Log.e("debug","Make Dir Error");
}
}
//SDカードに画像保存
String imgPath = saveDir+"/"+"bt_dot.jpg";
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bg_dot);
try {
FileOutputStream output = new FileOutputStream(imgPath);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, output);
output.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//画像をギャラリーに反映
String[] paths = {imgPath};
String[] mimeTypes = {"image/png"};
MediaScannerConnection.scanFile(getApplicationContext(), paths, mimeTypes, new OnScanCompletedListener(){
@Override
public void onScanCompleted(String path, Uri uri) {
Log.d("MediaScannerConnection", "Scanned " + path + ":");
Log.d("MediaScannerConnection", "-> uri=" + uri);
}
});
最初のfile.mkdir()で保存するディレクトリを作成しています。その後、ファイルをBitmapオブジェクトとして取り出して保存します。
また、AndroidManifest.xmlには次のパーミッション記述が必要です。
結果はこんな感じ。SDカード内にtestフォルダが作られ、画像が保存されました。

参考:https://northerndarkstg.at.webry.info/201207/article_3.html
0 件のコメント:
コメントを投稿