欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-11-25 16:48:52
本文实例为大家分享了android截取指定view为图片的具体代码,供大家参考,具体内容如下 这个功能是为了截取指定的view为图片,然后分享到微信以及朋友圈使用的!...

本文实例为大家分享了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();

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