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

来源:互联网 发布:嵌入式linux如何移植 编辑:程序博客网 时间:2024/06/05 00:15

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


原创粉丝点击