2013-04-20 21 views
9

在我的应用程序中,我有一个关于客户详细信息的视图,我想将该视图保存为图像或PDF到SD卡,然后通过第三方应用程序打印视图(否则可以通过打印机直接打印该视图)。如何在android中将布局视图保存为图片或PDF格式的SD卡?

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

+0

检查此链接http://stackoverflow.com/questions/9868604/how-do-i-take-a-screenshot-of-an-android-lay出。 – 2013-04-20 05:45:49

+1

@HirenDabhi我通过这段代码得到了一张图片,你给出了什么链接,如何将它保存在SD卡中。 – Yugesh 2013-04-20 05:48:32

+1

检查此链接以保存您在SD卡上的位图。 http://stackoverflow.com/questions/4263375/android-saving-created-bitmap-to-directory-on-sd-card – 2013-04-20 05:49:54

回答

15

在清单文件中添加权限

<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(); 
} 
+0

什么是在你的答案中的文件编码的**名称**。 – Yugesh 2013-04-20 05:57:08

+0

文件名是您想要图像存储的名称。我使用了上面编辑的硬编码路径。 – Raghunandan 2013-04-20 06:00:47

+0

'f = new File(file,“filename”+。png);'在.png中显示错误。 – Yugesh 2013-04-20 06:11:08

0

上面的代码,代码工作正常但是,图像覆盖,因为相同的名称,因此,为避免此问题添加下面一行:

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");