将linlayout布局转为bitmap图片和保存

1.首先新建路径

 File filedirs = new File(Environment.getExternalStorageDirectory(), "/YuLin/");
        if (!filedirs.exists()) {
            filedirs.mkdirs();
        }

2.生成某个布局的bitmap

    /**
     * 生成某个LinearLayout的图片
     */
    private Bitmap getLinearLayoutBitmap2(LinearLayout linearLayout, int screenWidth, int screenHeight) {
        int w = screenWidth;
        int h = screenHeight ;
        // 创建对应大小的bitmap
        linearLayout.measure(0, 0);
        Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        canvas.drawColor(Color.WHITE);
        linearLayout.draw(canvas);
        return bitmap;
    }

3.把bitmap保存为文件

 Bitmap btp = getLinearLayoutBitmap2(lin_share, lin_share.getWidth(),
                lin_share.getHeight());
        File file = new File(filedirs, getTimeStamp() + ".jpg");

4.保存文件到手机

 saveBitmap2(file, btp,99);
  /**
     * 保存方法
     */
    private boolean saveBitmap(File mFile, Bitmap bm) {
        if (mFile.exists()) {
            mFile.delete();
            mFile.mkdirs();
        }
        try {
            FileOutputStream out = new FileOutputStream(mFile);
            bm.compress(Bitmap.CompressFormat.JPEG, 40, out);
            out.flush();
            out.close();
            return true;
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }

    }

注意 不懂得用法 查看下方完整方法

    public File saveSharePic(LinearLayout lin_share) {
        File filedirs = new File(Environment.getExternalStorageDirectory(), "/YuLin/");
        if (!filedirs.exists()) {
            filedirs.mkdirs();
        }
        Bitmap btp = getLinearLayoutBitmap2(lin_share, lin_share.getWidth(),
                lin_share.getHeight());
        File file = new File(filedirs, getTimeStamp() + ".jpg");
        try {
            saveBitmap2(file, btp,99);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return file;
    }

by:leileitua

转载于:https://www.cnblogs.com/widgetbox/p/9884510.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值