将当前可视化组件进行截图保存为图…

来源:互联网 发布:网络推广的工作 编辑:程序博客网 时间:2024/05/20 05:52
@Override
 protected void onCreate(BundlesavedInstanceState) {
  super.onCreate(savedInstanceState);
  
  setContentView(R.layout.activity_main);
  
  View button =findViewById(R.id.bt);
  button.setDrawingCacheEnabled(true);
  //必须要调用measure和layout这两个方法才能成功保存可视组件的图形到png文件
  //测量view的大小
  button.measure(MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED
    ),MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
  //发送位置和尺寸到view及其所有子view
  button.layout(0, 0,button.getMeasuredWidth(), button.getMeasuredHeight());
  
  //获取可视组件的截图
  Bitmap drawingCache =button.getDrawingCache();
  FileOutputStream fos;
  try {
   //将截图保存到/data/data/files/test.png中
   File file =new File(getFilesDir()+"/test.png");
   if(!file.exists()){
    file.createNewFile();
   }
   fos = newFileOutputStream(file);
   //将bitmap对象中的图像数据压缩并保存为png格式的图像文件
   drawingCache.compress(CompressFormat.PNG,100, fos);
   fos.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
0 0
原创粉丝点击