将布局文件转化成Bitmap图片并保存到本地

将布局文件转化成Bitmap图片并保存到本地

  • 获取windownwidth

      int windowWidth = MyApplication.getWindowWidth();
    
  • 将布局文件转化成Bitmap

      public Bitmap getScrollViewBitmap(RelativeLayout  relativeLayout) {
       int h = 0;
       Bitmap bitmap;
       h = relativeLayout.getHeight();
       bitmap = Bitmap.createBitmap(windowWidth, h, Bitmap.Config.ARGB_4444);
       final Canvas canvas = new Canvas(bitmap);
       canvas.drawColor(Color.parseColor("#f2f7fa"));
       relativeLayout.draw(canvas);
       return bitmap;
      }
    
  • 保存生成的Bitmap图片到本地

    public String saveImageToGallery(Context context, Bitmap bmp) {
        String path = Environment.getExternalStorageDirectory() + "/DAYU2/Screen";
        File fileFolder = new File(path);
        if (!fileFolder.exists()) {
          fileFolder.mkdirs();
        }
        String fileName = "Screen_" + System.currentTimeMillis() + ".jpg";
        File file = new File(fileFolder, fileName);
        try {
          FileOutputStream fos = new FileOutputStream(file);
          bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos);
          fos.flush();
          fos.close();
        } catch (FileNotFoundException e) {
          e.printStackTrace();
        } catch (IOException e) {
          e.printStackTrace();
        }
        return file.getAbsolutePath();
    }
  • 获取本地保存的Bitmap地址
    public String shareBitmap() {
       Bitmap xxBitmap = getScrollViewBitmap(comPictureOutRl);
       if (xxBitmap == null) {
         return null;
       }
       String s = saveImageToGallery(getContext(), xxBitmap);
       return s;
    } 

你可能感兴趣的:(将布局文件转化成Bitmap图片并保存到本地)