友盟分享圆角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;}

最终效果图

友盟------微信分享圆角图片有黑色背景 最终解决方案!!!相关推荐

  1. iOS 关于友盟微信分享成功回调不走的问题

    不得不说,友盟的客服以及论坛服务很不周到,特别是最近要获取友盟微信分享是否成功的状态,在分享回调里根本拿不到,回调根本不走.于是查看友盟论坛,提问的人很多,解答的完全没有,再咨询在线客服,回复答不到点 ...

  2. android友盟微信分享到朋友圈,干货,Umeng分享纯图片(避免跳坑)到_微信,朋友圈等...

    最近碰到项目需要分享纯图片到  QQ ,朋友圈,微信,微博...... 由于之前集成了Umeng分享,私心想着,这么强大的分享库,必定支持纯图片分享... 怀着这份坚定的信念,终于找到该如何分享纯图片 ...

  3. android友盟微信分享到朋友圈,2020年友盟分享到微信朋友圈

    2020年友盟分享到微信朋友圈 1.我想要对你说出我要说的最深的话语,我不敢,我怕你取笑 7.真心总是无人喜,偏偏套路撩人心 10.钱可以帮穷人思维的人解决温饱,却可以帮富人思维的人制造财富 十七.考 ...

  4. Android友盟微信分享失败,一闪而过

    BUG, 在这里记录一下这个奇葩问题,分享一下解决方案,真的无语了!! 1.检查代码,排除自身的代码问题. 2.查看安装的发布版APP的签名,检查这个签名是否和微信开放平台填写的签名一致.检查包名是否 ...

  5. 微信分享圆角图片有黑色部分

    近期做微信分享,分享时图片需要用app的logo做为分享图标,因为logo是一个圆角的图标,并且背景为透明色,所以导致分享后图片有黑色的部分 1.第一种解决方案就是直接让ui重新切图 2.直接用代码实 ...

  6. 友盟社会化分享+第三方登录 2022.03.28 最新版

    主要通过集成友盟SDK+QQ/微信/新浪SDK实现分享和微信登录功能 1.build.gradle 配置 2.app 文件夹下build.gradle添加以下内容 3.androidManifest. ...

  7. 使用友盟社会化分享IOS版SDK分享纯图片到微信

    本文和上一篇友盟社会化分享Android版是兄弟篇.其实本人用的是友盟Cocos2d-x的IOS版.对于普通IOS版如何分享纯图片到微信朋友圈,官网文档中已经说明的比较清楚,但是在Cocos2d-x版 ...

  8. 友盟社会化分享之自定义内容分享到微信,微博,豆瓣

    以前移动端要做分享的时候一般是两种方法,要么使用Intent调用安卓系统自带的分享功能接口,这是最简单快捷的方法, 要么就自己去QQ微信和各个微博等社交网站申请开发者ID和key,然后在看他们的官方文 ...

  9. 微信 支付宝支付 友盟登录分享 统计

    概述 GZPayAndShareDemo主要集成了支付宝 微信 支付功能,友盟社会化分享 统计!从此支付 分享 统计 不再是梦! 详细 代码下载:http://www.demodashi.com/de ...

最新文章

  1. mysql 存储过程 获取错误,MySQL存储过程相互调用并获得错误码示例
  2. 【c语言】蓝桥杯基础练习 数列特征
  3. 注册MSComm方法
  4. c语言怎样判断键盘 输入法,如何快速的认识键盘和正确的使用键盘
  5. 重磅推荐《南瓜书》:周志华《机器学习》的代码实现
  6. Java黑皮书课后题第2章:*2.17(科学:风寒温度)外面有多冷?...twc=35.74+0.6215ta-35.75v0.16+0.4275tav0.16,输入度数、风速显示风寒温度
  7. flatmap和map的区别!
  8. 从ThoughtWorks 2017技术雷达看微软技术
  9. c# html转为图片,C# 使用 WebBrowser 实现 HTML 转图片功能的示例代码
  10. php mongo 查询count,[PHP] 使用PHP在mongodb中进行count查询
  11. Windows Server 2012活动目录基础配置与应用(新手教程)之1---为什么需要域?
  12. Python爬虫(三)--百度贴吧
  13. delphi 创建一个纯文本文件
  14. mi5splus android9,小米MIUI 9.5国际版稳定版开始推送:超30款机型将获更新
  15. 题解 P2253 【好一个一中腰鼓!】
  16. 京东金融App崩溃治理实践
  17. IntelliJ IDEA 2019 通用 急活码
  18. kali获取同局域网设备的图片信息
  19. excel单元格内容拆分_EXCEL拆分单元格中的姓名,这都不叫事儿
  20. 什么?你还不知道offsetX、offsetY和clientX、clientY和pageX、pageY和screenX、screenY的区别,进来唠唠

热门文章

  1. 敏捷环境中的TMMi之6-测试绩效指标(TPI)
  2. ArcGIS API For JavaScript Font字体简介,下载及本地部署
  3. 信号与系统作业讲解视频勘误
  4. Python中有“不相等”的运算符吗?
  5. 青春痘疤的治疗,微晶磨削 TCA FREXEL (转)
  6. 斯坦福NLP名课带学详解 | CS224n 第20讲 - NLP与深度学习的未来(NLP通关指南·完结)
  7. 27岁还一事无成,也许他们能赊你点自慰
  8. 小红有5本新书,借给3位小朋友
  9. 一名前端开发者的2020年终总结
  10. HF-Net(二)基于HF-Net的全局特征定位及局部特征匹配