Android 根据View(布局) 生成图片(Bitmap)

下面生成图片的方法我会引用一个布局,布局我就不贴了,我说一些大家要主要的地方

布局:
引用了R.layout.ll_bitmap这个xml文件的布局
这个id (R.id.ll_layout)是最外面的一个布局 最好是LayoutInflater ,如果有其他的都布局请在外面写一个.要不然很容易出问题(RelativeLayout)

生成图片

    private Bitmap getBitmap() {
            Bitmap bitmap = null;
            LayoutInflater factorys = LayoutInflater.from(this);
            final View textEntryView = factorys.inflate(R.layout.ll_bitmap, null);
            View ll = textEntryView.findViewById(R.id.ll_layout);

            TextView textView = (TextView) textEntryView.findViewById(R.id.tvbitmap_sfz);
            textView.setTypeface(Typeface.createFromAsset(getAssets(), "fonts/OCRB10N.TTF"));
            ll.setDrawingCacheEnabled(true);
            ll.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
                    View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
            ll.layout(0, 0, ll.getMeasuredWidth(), ll.getMeasuredHeight());
            bitmap = Bitmap.createBitmap(ll.getDrawingCache());
            ll.setDrawingCacheEnabled(false);

            return bitmap;
        }

这个是上面的Bitmap存到sd卡里面 大家自己根据情况写

权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

        private void saveCroppedImage(Bitmap bmp) {
                File file = new File("/sdcard/myFolder");
                if (!file.exists())
                    file.mkdir();

                file = new File("/sdcard/temp.jpg".trim());
                String fileName = file.getName();
                String mName = fileName.substring(0, fileName.lastIndexOf("."));
                String sName = fileName.substring(fileName.lastIndexOf("."));

                // /sdcard/myFolder/temp_cropped.jpg
                String newFilePath = "/sdcard/myFolder" + "/" + mName + "_cropped" + sName;
                file = new File(newFilePath);
                try {
                    file.createNewFile();
                    FileOutputStream fos = new FileOutputStream(file);
                    bmp.compress(CompressFormat.JPEG, 50, fos);
                    fos.flush();
                    fos.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值