先看看截图效果图

截取scrollview的屏幕
 1     /**
 2      * 截取scrollview的屏幕
 3      **/
 4     public static Bitmap getScrollViewBitmap(ScrollView scrollView) {
 5         int h = 0;
 6         Bitmap bitmap;
 7         for (int i = 0; i < scrollView.getChildCount(); i++) {
 8             h += scrollView.getChildAt(i).getHeight();
 9         }
10         // 创建对应大小的bitmap
11         bitmap = Bitmap.createBitmap(scrollView.getWidth(), h,
12                 Bitmap.Config.RGB_565);
13         final Canvas canvas = new Canvas(bitmap);
14         scrollView.draw(canvas);
15         return bitmap;
16     }

压缩图片

 1     /**
 2      * 压缩图片
 3      * @param image
 4      * @return
 5      */
 6     public static Bitmap compressImage(Bitmap image, int quality) {
 7         ByteArrayOutputStream baos = new ByteArrayOutputStream();
 8         // 质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中
 9         image.compress(Bitmap.CompressFormat.JPEG, quality, baos);
10         int options = 100;
11         // 循环判断如果压缩后图片是否大于100kb,大于继续压缩
12 //        while (baos.toByteArray().length / 1024 > 30) {
13             // 重置baos
14             baos.reset();
15             // 这里压缩options%,把压缩后的数据存放到baos中
16            image.compress(Bitmap.CompressFormat.JPEG, quality, baos);
17             // 每次都减少10
18 //            options -= 10;
19 //        }
20         // 把压缩后的数据baos存放到ByteArrayInputStream中
21         ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());
22         // 把ByteArrayInputStream数据生成图片
23         return BitmapFactory.decodeStream(isBm, null, null);
24     }

点击按钮弹窗分享dialog提示窗

 1     //----点分享朋友弹出PopupWindow
 2     private void showPopupWindow() {
 3         View contentView = LayoutInflater.from(GroupBulkActivity.this).inflate(R.layout.popupdow_share, null, false);
 4         window = new PopupWindow(contentView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
 5         window.setOutsideTouchable(true);
 6         window.setOnDismissListener(new PopupWindow.OnDismissListener() {
 7             @Override
 8             public void onDismiss() {
 9                 backgroundAlpha(GroupBulkActivity.this, 1.0f);
10             }
11         });
12         backgroundAlpha(GroupBulkActivity.this, 0.5f);//0.0-1.0
13         iv_wx = contentView.findViewById(R.id.iv_image1);
14         iv_fiend = contentView.findViewById(R.id.iv_image2);
15         im_delt = contentView.findViewById(R.id.im_delt);
16         rl_delt = contentView.findViewById(R.id.rl_delt);
17
18         window.showAtLocation(LayoutInflater.from(GroupBulkActivity.this).inflate(R.layout.activity_group_bulk, null), Gravity.BOTTOM, 0, 0);
19
20         iv_wx.setOnClickListener(new View.OnClickListener() {
21             @Override
22             public void onClick(View v) {
23                wechatShare(0);
24                 window.dismiss();
25                 backgroundAlpha(GroupBulkActivity.this, 1f);
26             }
27         });
28         iv_fiend.setOnClickListener(new View.OnClickListener() {
29             @Override
30             public void onClick(View v) {
31                 wechatShare(1);
32                 window.dismiss();
33                 backgroundAlpha(GroupBulkActivity.this, 1f);
34             }
35         });
36         rl_delt.setOnClickListener(new View.OnClickListener() {
37             @Override
38             public void onClick(View v) {
39                 window.dismiss();
40                 backgroundAlpha(GroupBulkActivity.this, 1f);
41             }
42         });
43     }

dailog布局

  1 <?xml version="1.0" encoding="utf-8"?>
  2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3                 android:id="@+id/parent"
  4                 android:layout_width="match_parent"
  5                 android:layout_height="match_parent">
  6
  7
  8     <LinearLayout
  9         android:id="@+id/ll_share"
 10         android:layout_width="match_parent"
 11         android:layout_height="183dp"
 12         android:background="#FFFFFF"
 13         android:orientation="vertical">
 14
 15         <TextView
 16             android:layout_width="match_parent"
 17             android:layout_height="1px"
 18             android:background="#e4e4e4"/>
 19
 20         <RelativeLayout
 21             android:layout_width="match_parent"
 22             android:layout_height="45dp">
 23
 24             <TextView
 25                 android:id="@+id/item_popupwindows_Photo"
 26                 android:layout_width="match_parent"
 27                 android:layout_height="55dp"
 28                 android:background="@drawable/bt_nobgd"
 29                 android:gravity="center"
 30                 android:text="分享给好友"
 31                 android:textColor="#585858"
 32                 android:textSize="14sp"/>
 33
 34             <RelativeLayout
 35                 android:id="@+id/rl_delt"
 36                 android:layout_width="wrap_content"
 37               android:layout_marginLeft="320dp"
 38                 android:layout_height="55dp">
 39                 <ImageView
 40                     android:id="@+id/im_delt"
 41                     android:layout_width="14dp"
 42                     android:layout_height="14dp"
 43                     android:layout_alignParentRight="true"
 44                     android:layout_marginRight="21dp"
 45                     android:layout_marginTop="14dp"
 46                     android:gravity="center"
 47                     android:src="@drawable/down"
 48                     android:textColor="#585858"
 49                     android:textSize="12sp"/>
 50             </RelativeLayout>
 51
 52
 53         </RelativeLayout>
 54
 55         <TextView
 56             android:layout_width="match_parent"
 57             android:layout_height="1px"
 58             android:background="#9e8888"/>
 59
 60
 61         <LinearLayout
 62             android:layout_width="match_parent"
 63             android:layout_height="match_parent"
 64             android:clipChildren="false"
 65             >
 66
 67
 68             <LinearLayout
 69                 android:layout_width="0dp"
 70                 android:layout_height="wrap_content"
 71                 android:layout_marginTop="40dp"
 72                 android:layout_weight="1"
 73                 android:gravity="center"
 74                 android:orientation="vertical">
 75
 76                 <ImageView
 77                     android:id="@+id/iv_image1"
 78                     android:layout_width="50dp"
 79                     android:layout_height="50dp"
 80                     android:src="@drawable/weixin"/>
 81
 82                 <TextView
 83                     android:layout_width="wrap_content"
 84                     android:layout_height="wrap_content"
 85                     android:textColor="#333333"
 86                     android:textSize="13sp"
 87                     android:layout_marginTop="5dp"
 88                     android:text="微信"/>
 89
 90
 91             </LinearLayout>
 92
 93             <LinearLayout
 94                 android:layout_width="0dp"
 95                 android:layout_height="wrap_content"
 96
 97                 android:layout_weight="1"
 98                 android:gravity="center"
 99                 android:orientation="vertical">
100
101                 <ImageView
102
103                     android:id="@+id/iv_image2"
104                     android:layout_width="50dp"
105                     android:layout_height="50dp"
106                     android:layout_marginTop="40dp"
107                     android:src="@drawable/pengyou"/>
108
109                 <TextView
110                     android:layout_width="wrap_content"
111                     android:layout_height="wrap_content"
112                     android:textColor="#333333"
113                     android:textSize="13sp"
114                     android:layout_marginTop="5dp"
115                     android:text="朋友圈"/>
116             </LinearLayout>
117         </LinearLayout>
118     </LinearLayout>
119 </RelativeLayout>

分享图片到微信或盆友圈

 1     private void wechatShare(int flag) {
 2         String baseUrl = Cache.exist(CacheKey.BASE_URL) ? Cache.get(CacheKey.BASE_URL).toString() : URL.BASE_URL;
 3         // 分享图片
 4         Bitmap mBitmap = getScrollViewBitmap(scrollView);
 5 //        Bitmap mBitmap = CodeUtils.createImage(data.getCodeUrl(), 200, 200, BitmapFactory.decodeResource(getResources(), R.drawable.logo));
 6         //初始化WXImageObject和WXMediaMessage对象
 7         WXImageObject imageObject = new WXImageObject(compressImage(mBitmap, 80));
 8         WXMediaMessage msg = new WXMediaMessage();
 9         msg.mediaObject = imageObject;
10 //        mBitmap = getScrollViewBitmap(scrollView);
11         msg.setThumbImage(Bitmap.createScaledBitmap(mBitmap, 200, 200, true));
12
13         mBitmap.recycle();
14         //构造一个Req
15         SendMessageToWX.Req req = new SendMessageToWX.Req();
16         req.transaction = String.valueOf(System.currentTimeMillis());
17         req.message = msg;
18         req.scene = flag == 0 ? SendMessageToWX.Req.WXSceneSession : SendMessageToWX.Req.WXSceneTimeline;
19         MyApp.api.sendReq(req);
20
21     }

最终实现效果如图所示........

 

转载于:https://www.cnblogs.com/monkey0928/p/10784703.html

Android使用scrollview截取整个的屏幕并分享微信相关推荐

  1. android sharesdk qq分享到朋友圈,Android实战——ShareSDk的使用,实现一键分享微信好友、朋友圈、QQ...

    ShareSDk的使用,实现一键分享微信好友.朋友圈.QQ 事先说明: ShareSDK默认QQ可以分享,微信分享则需要在微信的开放平台上认证并申请应用填入对应信息即可 微信认证和申请应用涉及到打包和 ...

  2. Android实战——ShareSDk的使用,实现一键分享微信好友、朋友圈、QQ

    ShareSDk的使用,实现一键分享微信好友.朋友圈.QQ 事先说明: ShareSDK默认QQ可以分享,微信分享则需要在微信的开放平台上认证并申请应用填入对应信息即可 微信认证和申请应用涉及到打包和 ...

  3. Android 对ScrollView滚动监听,实现美团、大众点评的购买悬浮效果

    转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming),请尊重他人的辛勤劳动成果,谢谢! 随着移动互联网的快速发展,它已经和我们的生活息息相关了,在 ...

  4. Android对ScrollView滚动监听,实现美团、大众点评的购买悬浮效果

    Android对ScrollView滚动监听,实现美团.大众点评的购买悬浮效果 转:http://blog.csdn.net/xiaanming/article/details/17374599 很荣 ...

  5. android 截图scrollview

    import android.graphics.Bitmap; import android.graphics.Canvas; import android.view.View; import and ...

  6. linux下截取安卓手机屏幕,截取屏幕截图

    屏幕截图是捕获计算机屏幕上显示内容的图像. 在您尝试向支持人员说明情况,或想在博客中添加您在计算机屏幕上看到的内容时,屏幕截图便会派上用场. 无论您使用何种操作系统,只需几步就可以截取屏幕截图. Wi ...

  7. 2022-03-09 Android布局 ScrollView滚动界面

    一.样例一:15个按钮竖直排列,一般的屏幕不可能全部显示,得用ScrollView滚动界面. <?xml version="1.0" encoding="utf-8 ...

  8. Android常用实例——截取APP当前界面(可带图片、文字水印)

    Android常用实例--截取APP当前界面(可带图片.文字水印) 标签: android界面截图保存图片 2016-08-16 10:52 1262人阅读 评论(2) 收藏 举报  分类: Andr ...

  9. android 自定义Scrollview实现淘宝二层楼效果新版微信小程序下拉效果

    android 自定义Scrollview实现淘宝二层楼效果新版微信小程序下拉效果 由于最近一段时间真的是太忙了,没有顾上即使更新博客,还请粉丝们见谅,最近要实现这样一个效果,这个效果跟淘宝二层楼和新 ...

  10. android 设置scrollview 高度,Android ScrollView如何设置maxHeight

    在我们的开发需求中有时候要控制控件的最大高度,很多控件都没有提供这个属性,今天以ScrollView为例,自定义ScrollView, 实现 maxHeight的更能 java代码部分:package ...

最新文章

  1. java 自动登录功能_jsp实现用户自动登录功能
  2. Git初学札记(一)————Git简介与安装
  3. Spring Boot使用hikari、druid、c3p0等数据库连接池详解
  4. 中小企业的进步:热爱大数据
  5. Linux中Apache服务器的简单配置
  6. 3.1 栈—栈的存储实现和运算实现
  7. activitymq 登录界面地址
  8. android机器人聊天软件,虚拟男友聊天机器人
  9. HTML怎么使表格居中显示
  10. c语言程序设计的删除函数,详解C语言中的rename()函数和remove()函数的使用方法
  11. php公众号开发配置网页域名,微信公众号网页开发授权配置流程
  12. 03_使用决策树预测隐形眼镜类型
  13. U盘可以被识别但无法驱动问题
  14. 终于有人把红蓝对抗讲明白了
  15. 63名研究生的微信群被解散,导师发声:和你们没感情,江湖不见
  16. ubuntu软件:录制视频和截图工具,压缩视频
  17. sql常用操作(含指定位置添加字段、修改到指定位置后等)
  18. 接口是java面向对象的实现机制之一_接口是java面向对象的实现机制之一,以下说法正确的是()...
  19. 图像金字塔、高斯金字塔、拉普拉斯金字塔是怎么回事?附利用拉普拉斯金字塔和高斯金字塔重构原图的Python-OpenCV代码
  20. 保存图片到MySQL从MySQL读取图片

热门文章

  1. 安装完kali应该做的基本配置
  2. 从 Vue 的视角学 React(二)—— 基本语法
  3. 线上问题排查命令----Shell篇
  4. struts2--Basic(一)
  5. 浅析B/S架构数据库连接方式
  6. Python自带函数map(),zip()等
  7. windows 2008R2鼠标移动到任务栏一直是漏斗状态
  8. 8.MongoDB之分片集群
  9. svn checkout的时候报E000022错误
  10. nacos动态配置数据源_Sentinel使用Nacos存储规则及同步