您的位置:首页 > 编程语言

如何将当前布局用代码保存在png图像文件中?

2012-11-05 22:19 148 查看
截取当前界面的组件和保存成png图像文件。

首先要调用View.setDrawingCacheEnabled方法打开图像缓存,然后使用view.getDrawingCache方法获取View的Bitmap对象。

保存成png图像使用Bitmap.compress方法即可。

具体代码如下:

View view = getLayoutInflater().inflate(R.layout.activity_main,null);
//打开图像缓存
view.setDrawingCacheEnabled(true);
//只有调用measure和layout方法才能成功保存可视组件的截图到png图像文件
//测量view的大小
view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
//发送位置和尺寸到View及其所有的子view
view.layout(0, 0, view.getMeasuredHeight(), view.getMeasuredWidth());
try{
//获取可是组件的截图
Bitmap bitmap = view.getDrawingCache();
// 将截图保存到SD卡根目录的MyText.png图像文件中
FileOutputStream fileos = new FileOutputStream("/sdcard/MyTest.png");
//将Bitmap对象中的图像数据压缩成png格式的图像数据,并将这些数据保存在MyTest.png文件中
bitmap.compress(CompressFormat.PNG, 100, fileos);
//关闭文件输出流
fileos.close();
}catch(Exception e){
System.out.println("出错了!!!!!!");
}
对了,若保存图像到sdcard上别忘了取得权限:

<!-- 往SDCard的创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


具体效果如下:




上图中MyTest.png即保存的截图。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐