アセット フォルダーから (実行時に) 画像を読み込むギャラリーを作成しています。クリックイベントで画像をSDカードに保存したい。
例: アプリが起動すると、ユーザーに画像が表示され、画像をスクロールして表示できます (この部分は完了しています)。問題は、自分のギャラリー ビューで写真が動的に読み込まれることです。私はそれらをハードコーディングしていません。
SDカードに保存したい。しかし、私は画像のハードコードされたパスを持っていません。画像は何枚あっても構いません。
private void CopyAssets() {
AssetManager assetManager = getAssets();
InputStream in=null;
String[] files = null;
try {
files = assetManager.list("image");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
for(String filename : files) {
try {
in = assetManager.open(filename);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
String dirName = Environment.getExternalStorageDirectory().toString();
File newFile = new File(dirName);
newFile.mkdirs();
OutputStream out = new FileOutputStream(newFile);
System.out.println("in tryyyy");
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
} catch(Exception e) {
Log.e("tag", e.getMessage());
}
上記の方法を試しましたが、すべての画像をSDカードにコピーしたくありません。しかし、ユーザーがギャラリーから動的に選択したものだけです。画像が多くなりますので。各画像パスをハードコーディングするのは大変です。
Android で現在の画像パスまたは URI を文字列で取得する方法はありますか? とはView v = this.getCurrentFocus();
? それは何を返しますか?