Android使用scrollview截取整个的屏幕并分享微信
先看看截图效果图
截取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截取整个的屏幕并分享微信相关推荐
- android sharesdk qq分享到朋友圈,Android实战——ShareSDk的使用,实现一键分享微信好友、朋友圈、QQ...
ShareSDk的使用,实现一键分享微信好友.朋友圈.QQ 事先说明: ShareSDK默认QQ可以分享,微信分享则需要在微信的开放平台上认证并申请应用填入对应信息即可 微信认证和申请应用涉及到打包和 ...
- Android实战——ShareSDk的使用,实现一键分享微信好友、朋友圈、QQ
ShareSDk的使用,实现一键分享微信好友.朋友圈.QQ 事先说明: ShareSDK默认QQ可以分享,微信分享则需要在微信的开放平台上认证并申请应用填入对应信息即可 微信认证和申请应用涉及到打包和 ...
- Android 对ScrollView滚动监听,实现美团、大众点评的购买悬浮效果
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming),请尊重他人的辛勤劳动成果,谢谢! 随着移动互联网的快速发展,它已经和我们的生活息息相关了,在 ...
- Android对ScrollView滚动监听,实现美团、大众点评的购买悬浮效果
Android对ScrollView滚动监听,实现美团.大众点评的购买悬浮效果 转:http://blog.csdn.net/xiaanming/article/details/17374599 很荣 ...
- android 截图scrollview
import android.graphics.Bitmap; import android.graphics.Canvas; import android.view.View; import and ...
- linux下截取安卓手机屏幕,截取屏幕截图
屏幕截图是捕获计算机屏幕上显示内容的图像. 在您尝试向支持人员说明情况,或想在博客中添加您在计算机屏幕上看到的内容时,屏幕截图便会派上用场. 无论您使用何种操作系统,只需几步就可以截取屏幕截图. Wi ...
- 2022-03-09 Android布局 ScrollView滚动界面
一.样例一:15个按钮竖直排列,一般的屏幕不可能全部显示,得用ScrollView滚动界面. <?xml version="1.0" encoding="utf-8 ...
- Android常用实例——截取APP当前界面(可带图片、文字水印)
Android常用实例--截取APP当前界面(可带图片.文字水印) 标签: android界面截图保存图片 2016-08-16 10:52 1262人阅读 评论(2) 收藏 举报 分类: Andr ...
- android 自定义Scrollview实现淘宝二层楼效果新版微信小程序下拉效果
android 自定义Scrollview实现淘宝二层楼效果新版微信小程序下拉效果 由于最近一段时间真的是太忙了,没有顾上即使更新博客,还请粉丝们见谅,最近要实现这样一个效果,这个效果跟淘宝二层楼和新 ...
- android 设置scrollview 高度,Android ScrollView如何设置maxHeight
在我们的开发需求中有时候要控制控件的最大高度,很多控件都没有提供这个属性,今天以ScrollView为例,自定义ScrollView, 实现 maxHeight的更能 java代码部分:package ...
最新文章
- java 自动登录功能_jsp实现用户自动登录功能
- Git初学札记(一)————Git简介与安装
- Spring Boot使用hikari、druid、c3p0等数据库连接池详解
- 中小企业的进步:热爱大数据
- Linux中Apache服务器的简单配置
- 3.1 栈—栈的存储实现和运算实现
- activitymq 登录界面地址
- android机器人聊天软件,虚拟男友聊天机器人
- HTML怎么使表格居中显示
- c语言程序设计的删除函数,详解C语言中的rename()函数和remove()函数的使用方法
- php公众号开发配置网页域名,微信公众号网页开发授权配置流程
- 03_使用决策树预测隐形眼镜类型
- U盘可以被识别但无法驱动问题
- 终于有人把红蓝对抗讲明白了
- 63名研究生的微信群被解散,导师发声:和你们没感情,江湖不见
- ubuntu软件:录制视频和截图工具,压缩视频
- sql常用操作(含指定位置添加字段、修改到指定位置后等)
- 接口是java面向对象的实现机制之一_接口是java面向对象的实现机制之一,以下说法正确的是()...
- 图像金字塔、高斯金字塔、拉普拉斯金字塔是怎么回事?附利用拉普拉斯金字塔和高斯金字塔重构原图的Python-OpenCV代码
- 保存图片到MySQL从MySQL读取图片