【问题标题】:How to save the layout view as image or pdf to sd card in android?如何在android中将布局视图保存为图像或pdf到sd卡?
【发布时间】:2013-04-20 05:41:59
【问题描述】:

在我的应用程序中,我有一个包含客户详细信息的视图,我想将该视图作为图像或 PDF 保存到 SD 卡,然后通过第三方应用程序打印该视图(否则可以直接通过打印机打印该视图)。

我不知道如何将视图保存为图像或 PDF。有谁知道请帮我解决这个问题?

【问题讨论】:

标签: android android-layout android-view


【解决方案1】:

在清单文件中添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

使用下面的代码

LinearLayout content = findViewById(R.id.rlid);
content.setDrawingCacheEnabled(true);
Bitmap bitmap = content.getDrawingCache();
File file,f;                    
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) 
    {  
         file =new File(android.os.Environment.getExternalStorageDirectory(),"TTImages_cache");
         if(!file.exists())
        {
          file.mkdirs();

         } 
         f = new File(file.getAbsolutePath()+file.seperator+ "filename"+".png");
    }
  FileOutputStream ostream = new FileOutputStream(f);                                   
  bitmap.compress(CompressFormat.PNG, 10, ostream);
  ostream.close();

 } 
 catch (Exception e){
 e.printStackTrace();
}

【讨论】:

  • 你的答案中文件编码中的 name 是什么。
  • filename 是您希望用于存储图像的名称。我使用了上面编辑的硬编码路径。
  • 它必须是引号 f = new File(file, "filename"+".png");。运行时间是什么意思?您保存为 jpg 或 gif。但是 png 是推荐的格式。
  • 谢谢。终于有个疑问了。如何创建文件夹并将图像保存在该文件夹中
  • file =new File(android.os.Environment.getExternalStorageDirectory(),"myfolder"); if(!file.exists) 文件.mkdirs()。使用 myfolder 在 sdcard 下创建一个文件夹
【解决方案2】:

上面的代码可以正常工作,但是由于同名,图像覆盖所以,为了避免这个问题,添加以下行:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_hh_mm_ss");

Date now = new Date();

String fileName = formatter.format(now);

f = new File(file.getAbsolutePath()+file.separator+ "image_"+fileName+".png");

【讨论】:

    猜你喜欢
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    相关资源
    最近更新 更多