主题 : 【代码】android 保存绘图为bitmap的方法 复制链接 | 浏览器收藏 | 打印
欢迎加入清源的android开发交流群:314230976,加群时请验证:arm,谢谢!
级别: 侠客
UID: 94332
精华: 0
发帖: 72
金钱: 370 两
威望: 74 点
贡献值: 0 点
综合积分: 144 分
注册时间: 2013-07-14
最后登录: 2013-09-25
楼主  发表于: 2013-07-16 18:22

 【代码】android 保存绘图为bitmap的方法

复制代码
  1. //保存图片到sd卡
  2. private static void saveToFile(final String name, final Bitmap bitmap) {
  3. new Thread() {
  4. @Override
  5. public void run() {
  6. Utils.saveToFile(name, bitmap);
  7. }
  8. }.start();
  9. }
  10. //将view保存成图片
  11. public static Bitmap convertViewToBitmap(View view) {
  12. view.buildDrawingCache();
  13. Bitmap bitmap = view.getDrawingCache();
  14. return bitmap;
  15. }
  16. 以下是saveToFile的方法
  17. public static boolean saveToFile(String name, Bitmap bitmap)
  18. {
  19. // 在保存之前需要判断 SDCard 是否存在,并且是否具有可写权限:
  20. if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
  21. {
  22. return false;
  23. }
  24. // 检索 文件目录
  25. File sdCardDir = new File(Environment.getExternalStorageDirectory(),
  26. Constants.FILE_PATH);
  27. // 判断目录是否存在 不存在就直接创建一个
  28. if (!sdCardDir.exists()) {
  29. sdCardDir.mkdirs();
  30. }          
  31. // 创建 文件
  32. File dir = new File(sdCardDir,
  33. (new SimpleDateFormat("yyyy-MM-dd")).format(new Date()) + File.separator + Constants.DIR_NAME);
  34. //        // 获取SDCard目录,2.2的时候为:/mnt/sdcart 2.1的时候为:/sdcard
  35. //        File dir = new File(sdCardDir.getAbsolutePath() + File.separator + Constants.FILE_PATH + File.separator
  36. //                + (new SimpleDateFormat("yyyy-MM-dd")).format(new Date()) + File.separator + Constants.DIR_NAME);
  37. if (!dir.exists())
  38. {
  39. dir.mkdirs();
  40. Log.i("tag1", "创建成功");
  41. }else{
  42. Log.i("tag2", "已经有了");
  43. }
  44. try
  45. {
  46. File saveFile = new File(dir.getPath(), name + ".png");
  47. FileOutputStream outStream = new FileOutputStream(saveFile);
  48. bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
  49. outStream.close();
  50. }
  51. catch (Exception e)
  52. {
  53. System.out.println("保存失败");
  54. e.printStackTrace();
  55. }
  56. return true;
  57. }
欢迎加入android开发交流群,群号是:314230976