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 件のコメント:
コメントを投稿