小程序如何生成海报分享朋友圈,写给Android开发的小程序布局指南

.({

:

})

.({

: ‘图片保存成功,快去分享到朋友圈吧~’,

: ‘’,

: 2000

})

},

() {

.({

: ‘保存失败’,

: ‘’

})

}

})

},

() {

// 如果用户拒绝过或没有授权,则再次打开授权窗口

=

.(‘请设置允许访问相册’)

.({

: ‘请设置允许访问相册’,

: ‘’

})

}

})

} {

// 有则直接保存

=

.({

: ,

() {

.({

:

})

.({

: ‘图片保存成功,快去分享到朋友圈吧~’,

: ‘’,

: 2000

})

},

() {

.({

: ‘保存失败’,

: ‘’

})

}

})

}

},

() {

.()

}

})

}

总结

至此所有的步骤都已实现,在绘制的时候会遇到一些异步请求后台返回的数据,所以我用和和进行了封装,确保导出的图片信息是完整的。在绘制的过程确实遇到一些坑的地方。比如初开始导出的图片比例大小不对,还有用测量文字宽度不对,多次绘制(可能受网络原因)有时导出的图片上的文字颜色会有误差等。如果你也遇到一些比较坑的地方可以一起探讨下做个记录,下面附下完整的<a href="https://www.cyeor.com/tag/%e4%bb%a3%e7%a0%81" target="_blank">代码

‘…/…//.’ // 引入模块

= (),

= (‘…/…//.’);

= , // 创建对象

= , // 保存最终生成的导出的图片地址

= ; // 一个全局变量判断是否授权保存到相册

// 获取微信公众二维码

: () {

( (, ) {

.(‘///’, ‘’).( => {

.(, ‘获取微信公众二维码’)

(. == 200) {

.(., ‘’)

(.)

}

}).( => {

.()

})

})

},

// 生成海报

() {

= ;

// 点击生成海报数据埋点

.({

: ‘点击生成海报’

})

(!) {

= .()

.({

: ‘绘制中…’

})

= ( () {

.({

: ,

: () {

(.)

},

: () {

.()

.({

: ‘网络错误请重试’,

: ‘’

})

}

})

})

= ( () {

.({

: ,

: () {

(.)

},

: () {

.()

.({

: ‘网络错误请重试’,

: ‘’

})

}

})

})

.([, ]).( () {

= .(‘’)

.(, .., ‘’)

= 690 ..,

= 1085 ..,

_ = 60, //绘制的头像宽度

_ = 60, //绘制的头像高度

_ = 28, //绘制的头像在画布上的位置

_ = 36, //绘制的头像在画布上的位置

_ = 80, //绘制的二维码宽度

_ = 80, //绘制的二维码高度

_ = 588, //绘制的二维码在画布上的位置

_ = 984, //绘制的二维码在画布上的位置

= .., // 获取总阅读字数

// = .(..)., // 获取总阅读字数的宽度

// = (( + 375) - 325) 2 + 380;

// = / .. + 325;

= 97 / 6 / .. .(). + 325;

.(, .()., , ‘获取总阅读字数的宽度’)

.(‘///.’, 0, 0, 690, 1085)

.(); // 先保存状态 已便于画完圆再用

.(); //开始绘制

//先画个圆 前两个参数确定了圆心 (,) 坐标 第三个参数是圆的半径 四参数是绘图方向 默认是,即顺时针

.(_ / 2 + _, _ / 2 + _, _ / 2, 0, . 2, );

.(); //画了圆 再剪切 原始画布中剪切任意形状和尺寸。一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内

.([0], _, _, _, _); // 推进去图片

.(); //恢复之前保存的绘图上下文状态 可以继续绘制

.(‘#’); // 文字颜色

.(28); // 文字字

.(..., 103, 78); // 绘制文字

. = ‘ 44 -’;

.(‘#’); // 文字颜色

.(, 325, 153); // 绘制文字

. = ‘ 30 -’;

.(‘#’)

.(‘字’, , 150);

. = ‘ 24 -’;

.(‘#’); // 文字颜色

.(‘打败了全国’, 26, 190); // 绘制文字

. = ‘ 24 -’;

.(‘#15’); // 文字颜色

.(.., 154, 190); // 绘制孩子百分比

. = ‘ 24 -’;

.(‘#’); // 文字颜色

.(‘的小朋友’, 205, 190); // 绘制孩子百分比

. = ‘ 32 -’;

.(‘#3’); // 文字颜色

.(.., 50, 290); // 签到天数

.(.., 280, 290); // 阅读时长

.(.., 508, 290); // 听书时长

// 书籍阅读结构

. = ‘ 28 -’;

.(‘#’); // 文字颜色

.(..[0]., 260, 510);

.(..[1]., 420, 532);

.(..[2]., 520, 594);

.(..[3]., 515, 710);

.(..[4]., 492, 828);

.(..[5]., 348, 858);

.(..[6]., 212, 828);

.(..[7]., 148, 726);

.(..[8]., 158, 600);

. = ‘ 18 -’;

.(‘#’); // 文字颜色

.(..[0]., 232, 530);

.(..[1]., 394, 552);

.(..[2]., 496, 614);

.(..[3]., 490, 730);

.(..[4]., 466, 850);

.(..[5]., 323, 878);

.(..[6]., 184, 850);

.(..[7]., 117, 746);

.(..[8]., 130, 621);

.([1], _, _, _, _); // 绘制头像

.(, () {

// 画布转成图片并返回图片地址

.({

: ‘’,

: () {

= .

.({

:

})

.(., ‘’)

.({

: ‘绘制成功’,

})

},

: () {

.({

: ‘绘制失败’,

})

},

: () {

.()

.()

}

})

})

})

}

},

// 保存到系统相册

: () {

= ;

// 数据埋点点击保存学情海报

.({

: ‘保存学情海报’

})

// 获取用户是否开启用户授权相册

(!) {

.({

: () => {

() {

(.[“.”] === ) {

= ;

.({

: ,

() {

.({

:

})

如果你进阶的路上缺乏方向,可以点击我的加入我们的圈子和安卓者们一起学习交流!

以下全部内容都可以在中获取!

进阶学习全套手册

对标阿里7学习视频

大厂高频面试题

最后,借用我最喜欢的乔布斯语录,作为本文的结尾:

人这一辈子没法做太多的事情,所以每一件都要做得精彩绝伦。

你的时间有限,所以不要为别人而活。不要被教条所限,不要活在别人的观念里。不要让别人的意见左右自己内心的声音。

最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。

自我介绍一下,小编13年上海交大毕业,曾经在小待过,也去过华为、等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面无偿!(备注)

自己的真实想法,其他一切都是次要。

自我介绍一下,小编13年上海交大毕业,曾经在小待过,也去过华为、等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(-2-16)]

[外链图片转存中…(--16)]

[外链图片转存中…(-1-17)]

[外链图片转存中…(-095-17)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面无偿!(备注)

[外链图片转存中…(-01-17)]

© 版权声明
THE END
分享