温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android截取指定View为图片的实现方法

发布时间:2020-10-16 10:22:17 来源:脚本之家 阅读:186 作者:AND_Devil 栏目:移动开发

本文实例为大家分享了Android截取指定View为图片的具体代码,供大家参考,具体内容如下

Android截取指定View为图片的实现方法

这个功能是为了截取指定的View为图片,然后分享到微信以及朋友圈使用的!

如图所示,我需要截取整个LinearLayout的内容,多余的内容全部都要去掉!

//诺,主要观察这两个方法

 /**
 * 压缩图片
 *
 * @param bgimage
 * @param newWidth
 * @param newHeight
 * @return
 */
 public static Bitmap zoomImage(Bitmap bgimage, double newWidth, double newHeight) {
 // 获取这个图片的宽和高
 float width = bgimage.getWidth();
 float height = bgimage.getHeight();
 // 创建操作图片用的matrix对象
 Matrix matrix = new Matrix();
 // 计算宽高缩放率
 float scaleWidth = ((float) newWidth) / width;
 float scaleHeight = ((float) newHeight) / height;
 // 缩放图片动作
 //matrix.postScale(scaleWidth, scaleHeight);//TODO 因为宽高不确定的因素,所以不缩放
 Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, (int) width,
  (int) height, matrix, true);
 return bitmap;
 }

 /**
 * 截取指定View为图片
 *
 * @param view
 * @return
 * @throws Throwable
 */
 public static Bitmap captureView(View view) throws Throwable {
 Bitmap bm = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
 view.draw(new Canvas(bm));
 return bm;
 }

其实很简单,就是首先获取View的宽高,然后设置bitmap格式,最后生成一张Bitmmap对象,然后在绘制出来,就这么个道理!

//这个是使用逻辑
 Bitmap bitmap = null;
  try {
   bitmap = captureView(mShareBackgroundSign);
  } catch (Throwable throwable) {
   throwable.printStackTrace();
  }
  UMImage umImage = null;
  umImage = new UMImage(getActivity(), zoomImage(bitmap, 720, 1280));
  new ShareAction(getActivity()).setPlatform(SHARE_MEDIA.WEIXIN)
   .withText(content)
   .withMedia(umImage)
   .share();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI