Android 分享微信小程序之图片优化
小菜上周接入了微信分享小程序的入口,基本功能实现都没问题,有需要的朋友可以了解一下 Android 分享微信小程序失败二三事,虽然功能都正常,但整体测试发现图片展示效果不佳。于是小菜整理了一个简单的小方法处理一下图片!
微信规定,分享小程序展示的图片应该在 128KB 以内,同时图片默认展示比例为 5:4,这样小菜默认的图很多是竖直的图,只会展示一部分。
小菜尝试了图片的【等比压缩】【非等比压缩】和【不压缩】,效果依旧不合适,图片所占位置默认以横向方向填充满分享出的布局。于是小菜决定重新用 Canvas 绘制一张图,将所要展示的图片居中展示,整理方法如下:
public static Bitmap drawWXMiniBitmap(Bitmap bitmap, int width, int height) { Bitmap mBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); // 用这个Bitmap生成一个Canvas,然后canvas就会把内容绘制到上面这个bitmap中 Canvas mCanvas = new Canvas(mBitmap); // 绘制画笔 Paint mPicturePaint = new Paint(); // 绘制背景图片 mCanvas.drawBitmap(mBitmap, 0.0f, 0.0f, mPicturePaint); // 绘制图片的宽、高 int width_head = bitmap.getWidth(); int height_head = bitmap.getHeight(); // 绘制图片--保证其在水平方向居中 mCanvas.drawBitmap(bitmap, (width - width_head) / 2, (height - height_head) / 2, mPicturePaint); // 保存绘图为本地图片 mCanvas.save(); mCanvas.restore(); return mBitmap; }
小菜测试时发现,很多图片的尺寸大小和宽高比并非固定的,为了适配整体展示效果,当宽高比小于1时,根据图片高度来计算整体绘制 Bitmap 宽,Bitmap 可以根据需求展示相应的本地资源图或网络图,宽高可以直接设置 5:4 大小,小菜测试 width = 300; height = 240 整体效果较为合适。大家可以根据个人需求自定义图片样式。
Bitmap bitmap = BitmapUtil.drawWXMiniBitmap(bitmap, bitmap.getHeight() * 5 / 4, bitmap.getHeight()); if (BitmapUtil.isOverSize(bitmap, 128)) { bitmap = Utils.resizeBitmap(bitmap, 300, 240); }
Tips: 绘制完成之后的图会比原图大,所以需要先绘制图片,再判断图片是否超过 128KB。若超过 128KB 需要进行压缩,公共的方法暂时就省略啦!
内容很少,有问题的地方还请多多指教!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
apk 反编译
在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看。下面是我参考了一些文章后简单的教程详解。 测试环境: win 10 使用工具: CSDN上下载地址: apktool (资源文件获取) 下载[http://download.csdn.net/detail/vipzjyno1/7025111](http://download.csdn.net/detail/vipzjyno1/7025111) dex2jar(源码文件获取) 下载[http://download.csdn.net/detail/vipzjyno1/7025127](http://download.csdn.net/detail/vipzjyno1/7025127) jd-gui (源码查看) 下载[http://download.csdn.net/detail/vipzjyno1/7025145](http://download.csdn.net/d...
- 下一篇
Spring Cloud Gateway 数据库存储路由信息的扩展方案
动态路由背景 无论你在使用Zuul还是Spring Cloud Gateway 的时候,官方文档提供的方案总是基于配置文件配置的方式 例如: # zuul 的配置形式 routes: pig-auth: path: /auth/** serviceId: pig-auth stripPrefix: true # gateway 的配置形式 routes: - id: pigx-auth uri: lb://pigx-auth predicates: - Path=/auth/** filters: - ValidateCodeGatewayFilter 配置更改需要重启服务,不能满足实际生产过程中的动态刷新、实时变更的业
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS关闭SELinux安全模块
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度