android: - 如何将图像从资产复制到SD卡?
我有一些图像显示在应用程序中(当用户从中选择图像时,如从图库中选取)。android: - 如何将图像从资产复制到SD卡?
问题是如何将代码中的资产 文件夹中的图像复制到SD卡上的文件夹中。
编辑:我试过了这个例子:http://www.technotalkative.com/android-copy-files-from-assets-to-sd-card/
-
我所提供的应用程序的权限读取和写入
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
AssetManager assetManager = context.getAssets();
InputStream is = assetManager.open(fileName);
获取AssetManager
和呼叫open
与文件我想要复制为参数。 然后你可以用这种方式
File out = new File(Environment.getExternalStorageDirectory(), fileName);
byte[] buffer = new byte[BUFFER_LEN];
FileOutputStream fos = new FileOutputStream(out);
int read = 0;
while ((read = is.read(buffer, 0, BUFFER_LEN)) >= 0) {
fos.write(buffer, 0, read);
}
fos.flush();
fos.close()
is.close()
记得添加WRITE_EXTERNAL_STORAGE
许可,您AndroidManifest.xml
文件
谢谢你的回答,这将用于指定的文件,但在我的项目中有图像(不是一个图像)。 – noviceAndroid 2013-04-11 08:30:08
它看起来像Environment.getExternalStorageDirectory是一种方法,而不是公共成员,所以它应该是Environment.getExternalStorageDirectory()(带括号) – Grimmy 2014-02-13 14:54:30
当然是。这是一个错字。感谢您指出@Grimmy – Blackbelt 2014-02-13 14:55:37
- 获得使用多种方法之一位图资源简单地复制。
例:
Bitmap bitmap = BitmapFactory.decodeResource(resource, id); // get your bitmap that you want to save on SD card.
- 获取存储资源的路径。
String compressedFilePath = Environment.getExternalStorageDirectory() + File.separator + "FOLDERNAME" + File.separator + "FILENAME.jpg";
- 保存使用压缩方法。 (快捷方式来保存图像为每docs)
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File(pathToStore))); // use 100 to make sure image quality is not reduced(Read the docs)
注意:您需要写(并可能在将来被读取)访问写入SD卡。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
private void copyFileAssets() {
AssetManager assetManager = getAssets();
InputStream in = null;
OutputStream out = null;
try {
in = assetManager.open("ceo.jpg");
out = new FileOutputStream(Environment.getExternalStorageDirectory()+File.separator+ "abc.jpg");
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
} catch(IOException e) {
Log.e("tag", "Failed to copy asset file: " + filename, e);
}
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[1024];
int read;
while((read = in.read(buffer)) != -1){
out.write(buffer, 0, read);
}
}
你必须添加此权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我试图图像直接把SD卡,但它不work.Then使用此http://计算器.com/questions/12173468/copy-images-from-assest-to-sd-card-on-install-android-application – noviceAndroid 2013-04-11 08:01:42
and it did,what? – njzk2 2013-04-11 09:53:30