以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Android 高级开发 』   (http://bbs.xml.org.cn/list.asp?boardid=53)
----  【代码】android 保存绘图为bitmap的方法  (http://bbs.xml.org.cn/dispbbs.asp?boardid=53&rootid=&id=126758)


--  作者:挥戈回日
--  发布时间:7/16/2013 5:49:00 PM

--  【代码】android 保存绘图为bitmap的方法
//保存图片到sd卡
private static void saveToFile(final String name, final Bitmap bitmap) {
new Thread() {
@Override
public void run() {
Utils.saveToFile(name, bitmap);
}
}.start();
}
//将view保存成图片
public static Bitmap convertViewToBitmap(View view) {
view.buildDrawingCache();
Bitmap bitmap = view.getDrawingCache();
return bitmap;
}
以下是saveToFile的方法
public static boolean saveToFile(String name, Bitmap bitmap)
{
// 在保存之前需要判断 SDCard 是否存在,并且是否具有可写权限:
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
{
return false;
}
// 检索 文件目录
File sdCardDir = new File(Environment.getExternalStorageDirectory(),
Constants.FILE_PATH);
// 判断目录是否存在 不存在就直接创建一个
if (!sdCardDir.exists()) {
sdCardDir.mkdirs();
}           
// 创建 文件
File dir = new File(sdCardDir,
(new SimpleDateFormat("yyyy-MM-dd")).format(new Date()) + File.separator + Constants.DIR_NAME);
//        // 获取SDCard目录,2.2的时候为:/mnt/sdcart 2.1的时候为:/sdcard
//        File dir = new File(sdCardDir.getAbsolutePath() + File.separator + Constants.FILE_PATH + File.separator
//                + (new SimpleDateFormat("yyyy-MM-dd")).format(new Date()) + File.separator + Constants.DIR_NAME);
if (!dir.exists())
{
dir.mkdirs();
Log.i("tag1", "创建成功");
}else{
Log.i("tag2", "已经有了");
}
try
{
File saveFile = new File(dir.getPath(), name + ".png");
FileOutputStream outStream = new FileOutputStream(saveFile);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.close();
}
catch (Exception e)
{
System.out.println("保存失败");
e.printStackTrace();
}
return true;
}
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms