微信小程序头像怎么改

微信小程序头像怎么改,第1张

主要步骤

获取用户头像

模板

合成

一、获取用户头像

制作自定义头像的第一步就是先选择。在海豚趣图的交互设计中,用户有三种选择的方式:微信头像、本地相册和相机拍摄。获取用户头像的产品设计如下图所示:

1、由于微信官方不再支持通过 wxgetUserInfo 接口来获取用户信息,我们必须通过使用 button 组件并将 open-type 指定为 getUserInfo 类型来获取或展示用户信息。

为优化用户体验,使用 wxgetUserInfo 接口直接弹出授权框的开发方式将逐步不再支持。从2018年4月30日开始,小程序与小游戏的体验版、开发版调用 wxgetUserInfo 接口,将无法弹出授权询问框,默认调用失败。正式版暂不受影响。

上图中弹出底部菜单的交互方式无法通过 wxshowActionSheet 来实现(因为该接口只能指定字符串文本,不能使用 button, navigator 等组件)。

因此,只能通过自定义 actionSheet 组件来实现以上功能。

mmp-action-sheet 组件

以下是 mmp-action-sheet 组件的代码。

indexwxml

<view hidden="{{!actionShow}}" class="mask {{mask}}" bindtap="actionHide">  <view class="actionSheet animated {{animation}}">

   <slot></slot>

   <button class="close" bindtap="actionHide">{{closeText}}</button>

 </view></view>

2、通过 slot 在 action-sheet 中插入自定义的内容,比如 button、navigator 等。

indexwxss

mask{  position: fixed;  top: 0;  left: 0;  width:100%;  height: 100%;  background: rgba(0, 0, 0, 05);  z-index: 999;

}actionSheet{  width: 100%;  position: absolute;  top: 100%;  z-index: 1000;  overflow: hidden;

}actionSheet button,actionSheet navigator{  color: #000;  text-align: center;  background: #fff;  border-radius: 0;  line-height: 35;  font-size: 32rpx;  border-bottom: 1rpx solid rgb(236, 236, 236);  opacity: 1;

}actionSheet button:active,actionSheet navigator:active{  color:#000;  background: rgb(236, 236, 236);

}actionSheet button::after,actionSheet navigator::after{  border: none;  border-radius: 0;

}actionSheet close{  border-bottom: none;  border-bottom: 50rpx solid #fff;  border-top: 16rpx solid rgb(236, 236, 236);

}animated {  animation-timing-function: ease-out;  animation-duration: 02s;  animation-fill-mode: both;

}@keyframes fadeInBottom {from{   transform: translate3d(0, 0, 0);

}  to {    transform: translate3d(0, -100%, 0);

 }

}fadeInBottom {  animation-name: fadeInBottom;

}@keyframes fadeOutBottom {from{   transform: translate3d(0, -100%, 0);

}  to {    transform: translate3d(0, 0, 0);

 }

}fadeOutBottom {  animation-name: fadeOutBottom;

}@keyframes fadeIn {from{   opacity: 0;

}  to {     opacity: 1;

 }

}fadeIn {  animation-name: fadeIn;

}@keyframes fadeOut {from{   opacity: 1;

}  to {     opacity: 0;

 }

}fadeOut {  animation-name: fadeOut;

}

indexjs

Component({  properties: {    actionSheetStatus: {      type: Boolean,      value: false,

     observer(newVal) {

       if (newVal) {

         thissetData({            actionSheetStatus: true,            animationMask: 'fadeIn',            animationSheet: 'fadeInBottom'

         })

       } else {          thissetData({            actionSheetStatus: false,            animationMask: 'fadeOut',            animationSheet: 'fadeOutBottom'

         })

       }

     }

   },    closeText: {      type: String,      value: '取消'

   }

 },  data: {    animationMask: 'fadeIn',    animationSheet: 'fadeInBottom'

 },  methods: {

   closeActionSheet() {

     thissetData({        animationMask: 'fadeOut',        animationSheet: 'fadeOutBottom'

     })

     setTimeout(() => {

       thissetData({actionSheetStatus: false})

     }, 300)

   }

 }

})

组件只有两个参数:

actionSheetStatus 指定组件的初始展示状态,默认为false,表示不显示组件。

closeText 指定关闭按钮的名字,默认为 取消。

indexjson

{  "component": true,  "usingComponents": {}

}

接下来在页面中调用组件,在组件中插入了3个 button 组件来实现来获取用户头像:

<action-sheet actionSheetStatus="{{actionSheetStatus}}">

   <button open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">使用微信头像</button>

   <button bindtap="pickPic" data-source-type="album">使用本地相册</button>

   <button bindtap="pickPic" data-source-type="camera">拍照</button>

 </action-sheet>

以上我们通过自定义组件 mmp-action-sheet 就解决了原生的 actionsheet 无法指定 button,从而无法获取用户微信头像的问题。

该组件我已经发布到 npm 包,需要用到的同学可以通过 npm 安装,也可以在 github 上查看源码和使用文档。

二、模板

有了原图,接下来我们需要选择模板。如果模板数量不多或者模板变化不频繁,我们可以直接把模板放在本地。鉴于我提供的模板比较多,放在本地会增大小程序源码的大小,我把模板上传到了小程序的云存储中,通过云函数来动态获取模板,方便以后模板扩展。

云函数 tpl 的代码如下:

// 云函数入口文件const cloud = require('wx-server-sdk')

cloudinit()// 云函数入口函数exportsmain = async (event, context) => {  const wxContext = cloudgetWXContext()  // 1 获取数据库引用

 const db = clouddatabase()  const MAX_LIMIT = 100

 // 2 构造查询语句

 const countResult = await dbcollection('template')count()  const total = countResulttotal  // 计算需分几次取

 const batchTimes = Mathceil(total / 100)  const tasks = []  for (let i = 0; i < batchTimes; i++) {    const promise = dbcollection('template')skip(i MAX_LIMIT)limit(MAX_LIMIT)get()

   taskspush(promise)

 }  return (await Promiseall(tasks))reduce((acc, cur) => {    return {

     data: accdataconcat(curdata),

     errMsg: accerrMsg,

   }

 })

}

页面中调用云函数拉取模板:

getTpl() {    const self = this

   // 调用云函数获取模板

   wxcloudcallFunction({

     name: 'tpl'

   })then(res => {

     selfsetData({

       templates: resresultdata

     })

   })

}

三、问题

到这里模板的获取逻辑已经没有问题了,但在开发过程中遇到了一个问题。模板的链接我使用的是云文件ID,当有大量并行加载的时候,只有部分能够显示,我看了一下dom节点其实都已经存在了,image的src的地址也都是正确的。

1、微信官方自230开始已经支持在image中使用云文件ID。云文件ID的格式为: cloud://xxxxxx/templates/01png。

我猜测可能是对微信云存储并发请求过多导致的(有知道的同学可以告知),因为我试了一下将云文件ID换成正常的HTTPS的链接是没问题的。

由此可知,可以想到有三种可行的解决方案:

2、将模板存储到外部OSS,使用https协议的链接。

3、使用 wxgetTempFileURL 用云文件 ID 换取真实链接,也就是https形式的链接。

4、控制图的并行加载数量。我的实践是将并行加载数量控制在20,当用户滚动的时候再发起下一次请求。

十二星座的男生谁最帅 第一名:双子座魔魅之帅

经常被女生们关注的帅气双子座,可不是因为他们本身五官多么完美,只是他们多半开朗大方,又有一种女孩子们都喜欢的坏坏的气质在,所以显得有些魔魅的帅气感觉哦。

第二名:狮子座阳刚之帅

总是冷着一张脸对人不怎么热情的狮子座,也是出产帅哥比较多的星座,大概是很多狮子座内在的那种刚毅的男人味,使得他们显得格外迷人,老远看上去就是帅哥一枚。

第三名:天蝎座耀眼之帅

天蝎座是出产男模的多产星座,可想而知一定也涌现出众多的帅哥,因为身材条件非常优秀,即便不是高瘦型往往身材也都特别的出众,所以看上去超级耀眼而且有诱惑力。

头像 男生 12星座之一水瓶座

十二星座男会用什么微信头像 不知道呀,这不准吧,反正我是双子座的,最近喜欢的男生是水瓶座的,之前喜欢的男生是双子座的,天秤座也喜欢过,座的也有,天蝎座也有,超花心

十二星座头像一整套 啊对

有没有像这样的十二星座头像 imgtom61/88jpg

长颜草头像十二星座 星座是按阳历(公历)日期划分的,首先你得知道你的阳历出生日期,然后对照下面的资料。

白羊座:3月21日~4月20日

金牛座:4月21日~5月21日

双子座:5月22日~6月21日

巨蟹座:6月22日~7月22日

狮子座:7月23日~8月23日

处女座:8月24日~9月23日

天秤座:9月24日~10月23日

天蝎座:10月24日~11月22日

射手座:11月23日~12月21日

魔羯座:12月22日~1月20日

水瓶座:1月21日~2月19日

双鱼座:2月20日~3月20日

上面是12星座日期查询表,对照表格便可知道自己所属星座。

12星座分别喜欢什么qq头像 白羊,射手,双子,水瓶大多喜欢很美丽的头像,像是帅哥靓妹之类的,当然,不排斥个别的会用自己喜爱的演员,角色,动漫,游戏人物做头像,天枰,摩羯,天蝎,这几个星座会喜欢神秘,优雅,高贵一些的头像,也有一些会选自己心仪的人物头像,但一般会钟情一种颜色,金牛,狮子,会选看上去复杂,辉煌,古典的头像,但金牛偶尔会选择静物,毕竟牛牛是一种骨子里漠然而脱俗的星座,狮子呢更倾向于霸气,酷一些的。双鱼座的头像大多寄托着他的梦幻,但一般都很唯美,这一点巨蟹也相同,他们都会挑一些有意境的头像,至于处女・・・・・・不好说・・・・・・这个龟毛的星座应该会认认真真的挑选一个无懈可击的美美的头像。

望请采纳。

12星座的女生头像

带“十二星座”四字的QQ头像 把要加字的图发过来

十二星座适合的头像挂件 十二星座迥异的性格特点也决定着他们各自的兴趣爱好,有的喜欢简单,有的喜欢热情,有的喜欢复杂多变,还有的喜欢个性凸显。你的性格又是怎么样呢?你会喜欢什么风格的小饰品?什么样的幸运手链能够讨你喜欢呢?假如最近的你正好想挑选一款合适的手链,那么就不要错过下面的内容了。

我身边那些头像放动物头像的人都是很可爱的。

性格应该比较开朗的!

不过有时候也没什么意义,单纯觉得照片好看适合做头像就用了!

从微信头像看人的性格

1用没太刻意选择过的生活照作头像

这类人对自己的接纳度比较高,对外貌也比较有自信,不一定长得好看,但是能接纳自己的本来面目。内心没藏太多秘密,也没做过什么见不得人的事儿,在网络世界和现实世界中差别不大。

2用端端正正的证件照作头像

为人中规中矩,不敢越雷池一步,其实内心很压抑。

3用自己PS过的照片、艺术照、文艺范儿照、装可爱照作头像

往往有较强的自我中心倾向,就是有点自恋啦!其实自恋的外表透露出自卑的内心,不太能接受真实的自己。

4用又远又小的人像作头像

注重隐私,害羞保守,防卫心较强,不易接近陌生人,基本上不太可能与人自来熟。

5用部分脸的超级特写作头像

自我感很强。其实很想被人认出来,在用伪艺术的形式来遮掩内心的真正渴望。

6用童年照片作头像

总觉得过去的事物比现在美好,容易伤感,不易改变。巨蟹座偏多。

巨蟹座性格温柔善良,对待他人非常友好,而且喜欢分享和理解;他们会给人一种非常温暖的感觉,而且很善良。你会发现他们对生活中的一切都是充满希望、积极乐观的态度。但因为太过于在乎别人而忽略了自己,就会有一些不快乐的事情出现,但是却不知道如何去解决和处理。如果你想让他们重新认识你,那就从了解你开始吧。巨蟹座喜欢家庭和温馨舒适的感觉,是一个很好相处又很温柔善良的星座。

1、巨蟹座性格上有一种比较成熟的魅力,而且他们不会把自己的心思隐藏起来,只是希望在外人面前展现出来,所以你要记住这一点。

但他们并不是一个完全成熟的人,可能会给人一种比较冷漠、不近人情的感觉。但是也不排除有些人可能只是喜欢,但并没有太深的喜欢。你也可以在这段感情中做一些积极乐观的事情,使对方对你有兴趣。两个人一旦建立起联系后,会非常注重生活,他们希望能够一直保持着那种家庭的温暖。但他们也需要照顾另一半的感受,所以就会变得更加努力。

2、巨蟹座是一个心思比较细腻的星座,他们有自己独特的处事方法;

但是他们并不会表现得像一个人那样,很爱和别人讲道理。因为他们也有自己的小秘密,需要被疼爱。虽然巨蟹座是一个非常温柔善良,非常体贴的星座。但是有时候也会给人一种冷淡和无情的感觉。因为他们不希望别人去了解自己。

3、巨蟹座会用情感去引导别人,并且他们会帮助别人解决一些困难。

巨蟹座给人一种温文尔雅和蔼可亲的感觉,所以他们最擅长做做善事。但是他有一个缺点,就是太过在乎别人,甚至让别人觉得自己是在帮助他,其实对别人来说不过是在做一个无用功和浪费时间的事情!但是他们很擅长和别人沟通,而且如果他们有什么问题的话,他们会及时地向别人求助。因此我们要学会与巨蟹座相处。如果你们之间存在一些矛盾的话,你就可以通过沟通来解决这个问题!

4、一旦陷入爱情也就很难抽离出来,但巨蟹可以给对方一定的安全感。

他们喜欢家人和朋友,这可以让伴侣有安全感,也可以在感情中感到很幸福。对巨蟹来说,感情里最重要的是一个尊重和理解,如果对方不能尊重和理解你的想法和态度,那他就做不到了。只有尊重、理解才能真正帮助到对方,而只有对方和你真心相爱,那么他们才有可能真正感受到爱。巨蟹座是一个追求自由和独立的星座。他们不想让爱情变成一场婚姻,而是想成为自己人生的主导者,在这方面巨蟹非常明确而坚定地做着这样的决定。这种坚定意味着巨蟹想成为自己人生中最重要的那个人而努力奋斗。

欢迎分享,转载请注明来源:表白网

原文地址:https://h5.hunlipic.com/xing/2217750.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-11-30
下一篇2023-11-30

发表评论

登录后才能评论

评论列表(0条)

    保存