【发布时间】:2012-08-18 17:30:43
【问题描述】:
我正在制作一个画廊,我在其中从资产文件夹加载(在运行时)图像。现在我想在点击事件时将图像保存到 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(); 是什么?它返回什么?
【问题讨论】:
-
您是否在图库中显示可绘制文件夹中的图像?
-
不,我正在共享 Assets 文件夹中的图像