如何将当前布局用代码保存在png图像文件中?
16lz
2021-01-26
截取当前界面的组件和保存成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即保存的截图。
更多相关文章
- 【Android】保存Fragment切换状态
- 【Android(安卓)Developers Training】 24. 保存键值对
- Android(安卓)Preference解读
- ACache的使用详解
- 初学Android,图形图像之混合使用逐帧动画和补间动画(三十七)
- 谈谈Android中的SurfaceTexture
- Android两种不同的方法去实现图像的放大与缩小
- Android手动绘制ninepath(.9.png)图片
- 安卓截图笔记