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

 更新时间:2019年06月15日 13:17:41   作者: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();

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

相关文章

  • Android实现注册界面

    Android实现注册界面

    这篇文章主要为大家详细介绍了Android实现注册界面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • android12 SD如何动态申请读写权限

    android12 SD如何动态申请读写权限

    这篇文章主要给大家介绍了关于android12 SD如何动态申请读写权限的相关资料,从Android 6.0开始,权限不再是在manifest⽂件中粘贴⼀下即可,这时候权限也正式⾛进⼤家的视野,需要的朋友可以参考下
    2023-07-07
  • Android ActivityManagerService启动流程详解

    Android ActivityManagerService启动流程详解

    这篇文章主要介绍了Android ActivityManagerService启动流程,AMS,即ActivityManagerService,是安卓java framework的一个服务,运行在system_server进程。此服务十分重要,因为它管理着安卓的四大组件,是安卓APP开发者最常接触到的一个服务
    2023-02-02
  • 浅谈Android插件化

    浅谈Android插件化

    插件化技术最初源于免安装运行 Apk的想法,这个免安装的 Apk 就可以理解为插件,而支持插件的 app 我们一般叫 宿主,下面就跟着小编一起学习Android插件化吧,希望能帮助到你
    2021-09-09
  • Android小知识之OkHttp的2种请求方式详解

    Android小知识之OkHttp的2种请求方式详解

    OkHttp可以说是如今最为流行的网络请求框架之一,下面这篇文章主要给大家介绍了关于Android小知识之OkHttp的2种请求方式的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-10-10
  • 老生常谈android中的事件传递和处理机制

    老生常谈android中的事件传递和处理机制

    下面小编就为大家带来一篇老生常谈android中的事件传递和处理机制。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Android菜单操作之创建并响应菜单

    Android菜单操作之创建并响应菜单

    这篇文章主要介绍了Android菜单操作之创建并响应菜单的相关资料,如何使用代码创建菜单项,给菜单项分组,及各种响应菜单事件的方法,需要的朋友可以参考下
    2016-04-04
  • Android自定义相机实现自动对焦和手动对焦

    Android自定义相机实现自动对焦和手动对焦

    这篇文章主要为大家详细介绍了android手动实现相机自动和手动对焦功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Android学习笔记之ContentProvider和Uri详解

    Android学习笔记之ContentProvider和Uri详解

    本篇文章主要介绍了Android学习笔记之ContentProvider和Uri详解,对于学习Android的朋友具有一定的参考价值,有需要可以可以了解一下。
    2016-11-11
  • android studio数据存储建立SQLite数据库实现增删查改

    android studio数据存储建立SQLite数据库实现增删查改

    这篇文章主要介绍了vandroid studio数据存储建立SQLite数据库实现增删查改,分别使用sqlite3工具和Android代码的方式建立SQLite数据库,具体内容,需要的小伙伴可以参考下面文章得详细内容
    2021-12-12

最新评论