如何使用imageview保存位图图像onclick
答
从imageView
得到位图:
imageview.buildDrawingCache();
Bitmap bm=imageview.getDrawingCache();
将它保存在一个文件中:
OutputStream fOut = null;
Uri outputFileUri;
try {
File root = new File(Environment.getExternalStorageDirectory()
+ File.separator + "folder_name" + File.separator);
root.mkdirs();
File sdImageMainDirectory = new File(root, "myPicName.jpg");
outputFileUri = Uri.fromFile(sdImageMainDirectory);
fOut = new FileOutputStream(sdImageMainDirectory);
} catch (Exception e) {
Toast.makeText(this, "Error occured. Please try again later.",
Toast.LENGTH_SHORT).show();
}
try {
bm.compress(Bitmap.CompressFormat.PNG, 100, fOut);
fOut.flush();
fOut.close();
} catch (Exception e) {
}
答
首先获取imageView的drawingCache(位图),然后将位图保存到SDCard。
File folder = new File(Environment.getExternalStorageDirectory()+“/ folder /”);如果(!folder.exists())folderAppointment.mkdirs();
try {
this.setDrawingCacheEnabled(true);
FileOutputStream fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory()+"/folder/file"));
Bitmap bitmap = YOUR_IMAGE_VIEW.getDrawingCache();
bitmap.compress(CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
+0
谢谢你让我试试这个.... @akkilis – 2012-02-01 06:42:52
答
你必须
- 保存图像到你的持久化存储。
- 添加条目到MediaStore内容提供商。
第一个可以使用下面的代码来实现:
FileOutputStream out = new FileOutputStream(filePath);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
其次,
MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, imagePath, name, description);
+0
谢谢让我试试.... @Ragunath Jawahar – 2012-02-01 06:43:38
谢谢你让我试试这个.. .. @Seshu Vinay – 2012-02-01 06:42:23
嘿vinay我收到错误消息“发生错误,请稍后再试。”甚至无法看到在根目录下创建的任何目录? – 2012-02-01 06:57:43
在清单中添加权限: –
2012-02-01 09:28:02