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

截取当前界面的组件和保存成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即保存的截图。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值