如何使用imageview保存位图图像onclick

问题描述:

我正在开发android中的图像着色。所以,当我点击另一个像保存图像时,将颜色应用于图像后,我必须将该图像保存到图库中。如何使用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) { 
} 
+0

谢谢你让我试试这个.. .. @Seshu Vinay – 2012-02-01 06:42:23

+0

嘿vinay我收到错误消息“发生错误,请稍后再试。”甚至无法看到在根目录下创建的任何目录? – 2012-02-01 06:57:43

+3

在清单中添加权限: 2012-02-01 09:28:02

首先获取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

你必须

  1. 保存图像到你的持久化存储。
  2. 添加条目到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