友盟------微信分享圆角图片有黑色背景 最终解决方案!!!
友盟分享圆角icon到微信时会显示黑边,原因是微信对于透明背景会裁剪掉.
对于一般情况是可以通过给图片设置为PNG解决.
umImage = new UMImage(url);umImage.compressFormat = Bitmap.CompressFormat.PNG;umWeb.setThumb(umImage); //缩略图
但是例如分享到微信朋友圈还是会有黑边 .
包括一些其他的app貌似也有这种情况 要么是直角,要么也有黑边.
如果是从本地res目录下获取icon可以取和分享面板同样背景的圆角图(比如:圆角icon四个角都是透明的 , 可以将四个角的透明色改为分享出去的背景色,这样看起来是圆角.) , 然而我的需求并不允许我这样做, 所以这种方式并不适合我.
在网上查询了一些资料发现并无很好的解决方案.
最终得到以下方案:
1. 查询到的方法有:
1. 直接将圆角改为直角.
2. 取本地图片res不同的分享给不同底色icon.
2. 下面是我目前的解决方案.
解决思路:
1. 准备1张背景图片.例如:微信朋友圈分享出去的灰色背景是F7F7F7,就准备相同色值的图片(下面有提供).
2. 将你的icon图与你准备好的背景图合成一张图片 icon在上 背景图在下.
3. 将合成的图片上传给微信.
这张图色值是我取自微信朋友圈分享面板背景色 , 如果这并不是你理想中的颜色 , 你也可以多弄几张图片根据不同分享场景分别处理.
下面是关键代码
/*** 开启线程 url 转bitmap 将图片裁剪成 300*300 避免超过32k* 裁剪后将背景图和icon图合成一张图 避免黑色背景出现*/new Thread(new Runnable() {@Overridepublic void run() {URL imageurl = null;try {imageurl = new URL(img_url);} catch (MalformedURLException e) {e.printStackTrace();}try {HttpURLConnection conn = (HttpURLConnection) imageurl.openConnection();conn.setDoInput(true);conn.connect();//取本地背景图,用于合成InputStream is = conn.getInputStream();Resources res = activity.getResources();Bitmap bmp = BitmapFactory.decodeResource(res, R.mipmap.share_icon);//背景图处理Bitmap bitmap1 = BitmapUtil.resizeImage(bmp, 300, 300);//icon处理Bitmap bitmap2 = BitmapUtil.resizeImage(BitmapFactory.decodeStream(is), 300, 300);//合成处理Bitmap bitmap3 = BitmapUtil.toConformBitmap(bitmap1, bitmap2);if(share_media == WEIXIN_CIRCLE) {umImage = new UMImage(activity, bitmap3);}else {umImage = new UMImage(activity,bitmap2);}umImage.compressFormat = Bitmap.CompressFormat.PNG;umWeb.setThumb(umImage); //缩略图is.close();//调起分享面板shareAction(activity,share_media);} catch (IOException e) {e.printStackTrace();}}}).start();
将图片缩放成相应的尺寸
public static Bitmap resizeImage(Bitmap bitmap, int w, int h) {Bitmap BitmapOrg = bitmap;int width = BitmapOrg.getWidth();int height = BitmapOrg.getHeight();int newWidth = w;int newHeight = h;float scaleWidth = ((float) newWidth) / width;float scaleHeight = ((float) newHeight) / height;Matrix matrix = new Matrix();matrix.postScale(scaleWidth, scaleHeight);// if you want to rotate the Bitmap// matrix.postRotate(45);Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0, width,height, matrix, true);return resizedBitmap;}
图片合成
public static Bitmap toConformBitmap(Bitmap background, Bitmap foreground) {if (background == null) {return null;}int bgWidth = background.getWidth();int bgHeight = background.getHeight();//create the new blank bitmap 创建一个新的和SRC长度宽度一样的位图Bitmap newbmp = Bitmap.createBitmap(bgWidth, bgHeight, Bitmap.Config.ARGB_8888);Canvas cv = new Canvas(newbmp);//draw bg intocv.drawBitmap(background, 0, 0, null);//在 0,0坐标开始画入bg//draw fg intocv.drawBitmap(foreground, 0, 0, null);//在 0,0坐标开始画入fg ,可以从任意位置画入//save all clipcv.save();//保存//storecv.restore();//存储return newbmp;}
最终效果图
友盟------微信分享圆角图片有黑色背景 最终解决方案!!!相关推荐
- iOS 关于友盟微信分享成功回调不走的问题
不得不说,友盟的客服以及论坛服务很不周到,特别是最近要获取友盟微信分享是否成功的状态,在分享回调里根本拿不到,回调根本不走.于是查看友盟论坛,提问的人很多,解答的完全没有,再咨询在线客服,回复答不到点 ...
- android友盟微信分享到朋友圈,干货,Umeng分享纯图片(避免跳坑)到_微信,朋友圈等...
最近碰到项目需要分享纯图片到 QQ ,朋友圈,微信,微博...... 由于之前集成了Umeng分享,私心想着,这么强大的分享库,必定支持纯图片分享... 怀着这份坚定的信念,终于找到该如何分享纯图片 ...
- android友盟微信分享到朋友圈,2020年友盟分享到微信朋友圈
2020年友盟分享到微信朋友圈 1.我想要对你说出我要说的最深的话语,我不敢,我怕你取笑 7.真心总是无人喜,偏偏套路撩人心 10.钱可以帮穷人思维的人解决温饱,却可以帮富人思维的人制造财富 十七.考 ...
- Android友盟微信分享失败,一闪而过
BUG, 在这里记录一下这个奇葩问题,分享一下解决方案,真的无语了!! 1.检查代码,排除自身的代码问题. 2.查看安装的发布版APP的签名,检查这个签名是否和微信开放平台填写的签名一致.检查包名是否 ...
- 微信分享圆角图片有黑色部分
近期做微信分享,分享时图片需要用app的logo做为分享图标,因为logo是一个圆角的图标,并且背景为透明色,所以导致分享后图片有黑色的部分 1.第一种解决方案就是直接让ui重新切图 2.直接用代码实 ...
- 友盟社会化分享+第三方登录 2022.03.28 最新版
主要通过集成友盟SDK+QQ/微信/新浪SDK实现分享和微信登录功能 1.build.gradle 配置 2.app 文件夹下build.gradle添加以下内容 3.androidManifest. ...
- 使用友盟社会化分享IOS版SDK分享纯图片到微信
本文和上一篇友盟社会化分享Android版是兄弟篇.其实本人用的是友盟Cocos2d-x的IOS版.对于普通IOS版如何分享纯图片到微信朋友圈,官网文档中已经说明的比较清楚,但是在Cocos2d-x版 ...
- 友盟社会化分享之自定义内容分享到微信,微博,豆瓣
以前移动端要做分享的时候一般是两种方法,要么使用Intent调用安卓系统自带的分享功能接口,这是最简单快捷的方法, 要么就自己去QQ微信和各个微博等社交网站申请开发者ID和key,然后在看他们的官方文 ...
- 微信 支付宝支付 友盟登录分享 统计
概述 GZPayAndShareDemo主要集成了支付宝 微信 支付功能,友盟社会化分享 统计!从此支付 分享 统计 不再是梦! 详细 代码下载:http://www.demodashi.com/de ...
最新文章
- mysql 存储过程 获取错误,MySQL存储过程相互调用并获得错误码示例
- 【c语言】蓝桥杯基础练习 数列特征
- 注册MSComm方法
- c语言怎样判断键盘 输入法,如何快速的认识键盘和正确的使用键盘
- 重磅推荐《南瓜书》:周志华《机器学习》的代码实现
- Java黑皮书课后题第2章:*2.17(科学:风寒温度)外面有多冷?...twc=35.74+0.6215ta-35.75v0.16+0.4275tav0.16,输入度数、风速显示风寒温度
- flatmap和map的区别!
- 从ThoughtWorks 2017技术雷达看微软技术
- c# html转为图片,C# 使用 WebBrowser 实现 HTML 转图片功能的示例代码
- php mongo 查询count,[PHP] 使用PHP在mongodb中进行count查询
- Windows Server 2012活动目录基础配置与应用(新手教程)之1---为什么需要域?
- Python爬虫(三)--百度贴吧
- delphi 创建一个纯文本文件
- mi5splus android9,小米MIUI 9.5国际版稳定版开始推送:超30款机型将获更新
- 题解 P2253 【好一个一中腰鼓!】
- 京东金融App崩溃治理实践
- IntelliJ IDEA 2019 通用 急活码
- kali获取同局域网设备的图片信息
- excel单元格内容拆分_EXCEL拆分单元格中的姓名,这都不叫事儿
- 什么?你还不知道offsetX、offsetY和clientX、clientY和pageX、pageY和screenX、screenY的区别,进来唠唠
热门文章
- 敏捷环境中的TMMi之6-测试绩效指标(TPI)
- ArcGIS API For JavaScript Font字体简介,下载及本地部署
- 信号与系统作业讲解视频勘误
- Python中有“不相等”的运算符吗?
- 青春痘疤的治疗,微晶磨削 TCA FREXEL (转)
- 斯坦福NLP名课带学详解 | CS224n 第20讲 - NLP与深度学习的未来(NLP通关指南·完结)
- 27岁还一事无成,也许他们能赊你点自慰
- 小红有5本新书,借给3位小朋友
- 一名前端开发者的2020年终总结
- HF-Net(二)基于HF-Net的全局特征定位及局部特征匹配