CN108776588A - 一种点赞效果的优化算法 - Google Patents
一种点赞效果的优化算法 Download PDFInfo
- Publication number
- CN108776588A CN108776588A CN201810591507.7A CN201810591507A CN108776588A CN 108776588 A CN108776588 A CN 108776588A CN 201810591507 A CN201810591507 A CN 201810591507A CN 108776588 A CN108776588 A CN 108776588A
- Authority
- CN
- China
- Prior art keywords
- picture
- animation
- thumbing
- effect
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—2D [Two Dimensional] animation, e.g. using sprites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及一种点赞效果的优化算法,包括如下步骤:自定义点赞控件LikeLayout,自定义列表List<Drawable>对象mDrawables,用于存储若干点赞的手势图片作为点赞图片,自定义随机变量mRandom,用于生成随机数,自定义添加点赞图片的接口addHeartView,该接口对外提供,根据点击次数变量count的值,随机获取若干点赞图片,创建Android系统提供的ImageView展示图片的控件对象,获取显示图片的动画集合AnimatorSet变量animSet,用来同时执行一系列显示图片的动画。本发明,算法清晰、简洁,可扩展性好,动画顺畅,功能丰富,提升用户体验,用户可以进行更多的自定义设置,更能凸显点赞的个性化效果。
Description
技术领域
本发明涉及点赞功能交互算法技术领域,具体说是一种点赞效果的优化算法。
背景技术
现有的App为了提高用户间的互动兴趣及热情,都提供点赞功能用于快捷的评价其他用户发布的信息。点赞功能的目的是刺激用户产生更多高质量的内容。
从用户的角度出发,对于点赞这一操作,通常希望表达的含义是,我喜欢。所以一般来说,很多App的点赞图标都是一个爱心形状的图标,因为我对此内容或者观点很赞同,所以只是为了表达自己的观点,算是支持。再后来,这个红色的爱心感觉太单调,很多人做成了大拇指上扬的图标,表达的意思是佩服,惊讶或者感动等。
点赞大多是陌生人间的行为,更多的是针对陌生人社交类应用,点赞这一操作还可以由评论功能来替代,因为评论可以有表情,针对这种场景,评论完全可以涵盖点赞这一功能。
点赞功能的实现逻辑通常如下:
1.内容详情加载时,判断用户是否已点赞;
2.点击按钮时,若已点赞,则发起取消点赞指令,否则发起点赞指令;
3.接口将用户id、内容id传到后端;
4.后端接受信息,更新对应内容的点赞数、点赞用户id,并在用户信息表中插入点赞内容id(文章id)和时间(若需要);
5.数据库执行后端发出的更新指令;
6.后端通过接口将处理结果返回给前端;
7.前端接收信息,并将结果按既定样式展示出来。
大部分App都使用“点击【点赞】按钮或icon”这种方式来触发点赞功能。部分App为了维持设计的简洁性,会将按钮默认隐藏起来。
由于现有的点赞功能过于单一,缺乏个性化,已经影响了用户体验,而且,现有的实现逻辑缺乏可扩展性,为统一点赞功能的算法,增强算法的可扩展性,提升用户体验,有必要对点赞算法进行再设计及优化。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种点赞效果的实现方法点赞效果的优化算法,算法清晰、简洁,可扩展性好,动画顺畅,功能丰富,提升用户体验,用户可以进行更多的自定义设置,更能凸显点赞的个性化效果。
为达到以上目的,本发明采取的技术方案是:
一种点赞效果的优化算法,其特征在于,包括如下步骤:
自定义点赞控件LikeLayout,继承android系统提供的布局控件FrameLayout;
自定义列表List<Drawable>对象mDrawables,是Android系统提供的Java列表对象,用于存储若干点赞的手势图片作为点赞图片,所述点赞图片为正方形图片,
自定义随机变量mRandom,是Random类型,用于生成随机数,
自定义添加点赞图片的接口addHeartView,该接口对外提供,具体包括以下参数:用户点击屏幕的横坐标x、纵坐标y,点击次数变量count,
根据点击次数变量count的值,随机获取若干点赞图片,
创建Android系统提供的ImageView展示图片的控件对象,
获取显示图片的动画集合AnimatorSet变量animSet,用来同时执行一系列显示图片的动画。
在上述技术方案的基础上,通过对对象mDrawables的增加、删除操作,实现对点赞图片的增加、删除。
在上述技术方案的基础上,根据点击次数变量count的值,随机获取若干点赞图片,具体步骤如下:
当为第一次点击时,获取默认第一张点赞图片,
从对象mDrawables中删除获取完毕的点赞图片,防止获取重复的图片,
当点击次数大于等于2时,则随机获取图片,具体步骤如下:
首先获取图片列表的大小size,根据mRandom变量和size的大小,会生成一个大于等于0小于size的整数,根据这个整数从剩余的图片列表中获取对应的图片,也就是随机生成的图片d,获取完之后从图片列表中删除该图片,防止下次点击生成重复的图片。
在上述技术方案的基础上,创建Android系统提供的ImageView展示图片的控件对象时,
根据图片的宽度值设置ImageView控件对象的宽高,
根据用户点击坐标(x,y)的存储参数lp.leftMargin和lp.topMargin,来设置图片距离屏幕左边和上边的间距。
在上述技术方案的基础上,获取显示图片的动画集合AnimatorSet变量animSet,用来同时执行一系列显示图片的动画时,
所述动画为控件view的缩放动画。
在上述技术方案的基础上,进一步包括如下步骤:
获取消失动画,在显示动画执行结束后,调用消失动画,使动画连贯效果提升。
在上述技术方案的基础上,获取消失动画时,通过调节控件view的透明度的属性alpha,实现控件view的消失。
本发明所述的点赞效果的实现方法点赞效果的优化算法,算法清晰、简洁,可扩展性好,动画顺畅,功能丰富,提升用户体验,用户可以进行更多的自定义设置,更能凸显点赞的个性化效果。
附图说明
本发明有如下附图:
图1 本发明的流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
如图1所示,本发明所述的点赞效果的优化算法,包括如下步骤:
自定义点赞控件LikeLayout,继承android系统提供的布局控件FrameLayout;
自定义列表List<Drawable>对象mDrawables,是Android系统提供的Java列表对象,用于存储若干点赞的手势图片作为点赞图片,所述点赞图片为正方形图片,
自定义随机变量mRandom,是Random类型,用于生成随机数,
自定义添加点赞图片的接口addHeartView,该接口对外提供,具体包括以下参数:用户点击屏幕的横坐标x、纵坐标y,点击次数变量count,
根据点击次数变量count的值,随机获取若干点赞图片,
创建Android系统提供的ImageView展示图片的控件对象,
获取显示图片的动画集合AnimatorSet变量animSet,用来同时执行一系列显示图片的动画。
在上述技术方案的基础上,通过对对象mDrawables的增加、删除操作,实现对点赞图片的增加、删除。
在上述技术方案的基础上,根据点击次数变量count的值,随机获取若干点赞图片,具体步骤如下:
当为第一次点击时,获取默认第一张点赞图片,
从对象mDrawables中删除获取完毕的点赞图片,防止获取重复的图片,
当点击次数大于等于2时,则随机获取图片,具体步骤如下:
首先获取图片列表的大小size,根据mRandom变量和size的大小,会生成一个大于等于0小于size的整数,根据这个整数从剩余的图片列表中获取对应的图片,也就是随机生成的图片d,获取完之后从图片列表中删除该图片,防止下次点击生成重复的图片。
具体算法可采用如下代码:
if (count % IDS.length == 0) {
d = mDrawables.get(0);
mDrawables.remove(0);
} else {
int size = mDrawables.size();
int random = mRandom.nextInt(size);
d = mDrawables.get(random);
mDrawables.remove(random);
}
其中:
IDS.length是图片总数,count % IDS.length == 0表示当用户点击了第一次或者循环完毕重新开始以后的第一次,都会展示第一张图片,d = mDrawables.get(0)就是从mDrawables图片列表中获取第一张图片,d是Drawable类型的变量,表示一张图片,在后边的ImageView控件中设置即可。
在上述技术方案的基础上,创建Android系统提供的ImageView展示图片的控件对象,具体算法可采用如下代码:
int size = d.getIntrinsicWidth();
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(size, size);
lp.leftMargin = (int) (x);
lp.topMargin = (int) (y - size);
final ImageView img = new ImageView(mContext);
img.setImageDrawable(d);
img.setLayoutParams(lp);
其中:
size是根据图片d获取图片的宽度值,因为图片是正方形,所以获取宽度就行了,FrameLayout.LayoutParams是帧布局参数,用来设置ImageView控件对象的宽高的,是必须设置的参数,lp.leftMargin和lp.topMargin是用户点击的时候,根据点击坐标(x,y)来设置图片距离屏幕左边和上边的间距,决定了图片最后的显示位置;
ImageView是图片控件,是Android系统提供的用来显示图片的,setImageDrawable就是调用了ImageView的api,来给图片设置给控件,setLayoutParams是设置参数的,设置之后图片控件的大小和距离屏幕左边和上边的间距就会生效。
在上述技术方案的基础上,获取显示图片的动画集合AnimatorSet变量animSet,用来同时执行一系列显示图片的动画,具体算法可采用如下代码:
ObjectAnimator scaleX = ObjectAnimator.ofFloat(view, "scaleX", 1.2f, 1f);
ObjectAnimator scaleY = ObjectAnimator.ofFloat(view, "scaleY", 1.2f, 1f);
AnimatorSet animSet = new AnimatorSet();
animSet.playTogether(scaleX, scaleY);
其中:
ObjectAnimator 是Android系统提供的显示属性动画的类,可以方便的给控件设置不同属性的动画,view对象就是步骤b生成的ImageView对象,scaleX和scaleY是控件view的缩放的属性,1.2f和1f表示会从图片的1.2倍缩放到1倍,也就是缩放到原始大小,playTogether就是调用了AnimatorSet 的播放api,会同时执行scaleX和scaleY属性的动画。
在上述技术方案的基础上,进一步包括如下步骤:
获取消失动画,在显示动画执行结束后,调用消失动画,使动画连贯效果提升。
在上述技术方案的基础上,获取消失动画,具体算法可采用如下代码:
ObjectAnimator alpha = ObjectAnimator.ofFloat(view, "alpha", 1f, 0.1f);
ObjectAnimator scaleX = ObjectAnimator.ofFloat(view, "scaleX", 1f, 2f);
ObjectAnimator scaleY = ObjectAnimator.ofFloat(view, "scaleY", 1f, 2f);
ObjectAnimator translationY= ObjectAnimator.ofFloat(view, "translationY",0f, -150f);
AnimatorSet animSet = new AnimatorSet();
animSet.playTogether(alpha, scaleX, scaleY, translationY);
其中:
ObjectAnimator 是Android系统提供的显示属性动画的类,可以方便的给控件设置不同属性的动画,view对象就是步骤b生成的ImageView对象,scaleX和scaleY是控件view的缩放的属性,1.2f和2f表示会从图片的原始大小缩放到2倍,alpha是控件view的透明度的属性,1f和0.1f表示从不透明到0.1f的透明度变化,translationY表示将view从当前位置移动到网上减小150像素的位置,playTogether就是调用了AnimatorSet 的播放api,会同时执行alpha、scaleX、scaleY和translationY属性的动画,播放起来的效果就是网上移动的同时,控件会放大,同时透明度会变化,渐渐消失。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (7)
1.一种点赞效果的优化算法,其特征在于,包括如下步骤:
自定义点赞控件LikeLayout,继承android系统提供的布局控件FrameLayout;
自定义列表List<Drawable>对象mDrawables,是Android系统提供的Java列表对象,用于存储若干点赞的手势图片作为点赞图片,所述点赞图片为正方形图片,
自定义随机变量mRandom,是Random类型,用于生成随机数,
自定义添加点赞图片的接口addHeartView,该接口对外提供,具体包括以下参数:用户点击屏幕的横坐标x、纵坐标y,点击次数变量count,
根据点击次数变量count的值,随机获取若干点赞图片,
创建Android系统提供的ImageView展示图片的控件对象,
获取显示图片的动画集合AnimatorSet变量animSet,用来同时执行一系列显示图片的动画。
2.如权利要求1所述的点赞效果的优化算法,其特征在于:通过对对象mDrawables的增加、删除操作,实现对点赞图片的增加、删除。
3.如权利要求1所述的点赞效果的优化算法,其特征在于:根据点击次数变量count的值,随机获取若干点赞图片,具体步骤如下:
当为第一次点击时,获取默认第一张点赞图片,
从对象mDrawables中删除获取完毕的点赞图片,防止获取重复的图片,
当点击次数大于等于2时,则随机获取图片,具体步骤如下:
首先获取图片列表的大小size,根据mRandom变量和size的大小,会生成一个大于等于0小于size的整数,根据这个整数从剩余的图片列表中获取对应的图片,也就是随机生成的图片d,获取完之后从图片列表中删除该图片,防止下次点击生成重复的图片。
4.如权利要求1所述的点赞效果的优化算法,其特征在于:创建Android系统提供的ImageView展示图片的控件对象时,
根据图片的宽度值设置ImageView控件对象的宽高,
根据用户点击坐标(x,y)的存储参数lp.leftMargin和lp.topMargin,来设置图片距离屏幕左边和上边的间距。
5.如权利要求1所述的点赞效果的优化算法,其特征在于:获取显示图片的动画集合AnimatorSet变量animSet,用来同时执行一系列显示图片的动画时,
所述动画为控件view的缩放动画。
6.如权利要求1所述的点赞效果的优化算法,其特征在于:进一步包括如下步骤:
获取消失动画,在显示动画执行结束后,调用消失动画,使动画连贯效果提升。
7.如权利要求6所述的点赞效果的优化算法,其特征在于:获取消失动画时,通过调节控件view的透明度的属性alpha,实现控件view的消失。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810591507.7A CN108776588A (zh) | 2018-06-10 | 2018-06-10 | 一种点赞效果的优化算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810591507.7A CN108776588A (zh) | 2018-06-10 | 2018-06-10 | 一种点赞效果的优化算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108776588A true CN108776588A (zh) | 2018-11-09 |
Family
ID=64024838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810591507.7A Pending CN108776588A (zh) | 2018-06-10 | 2018-06-10 | 一种点赞效果的优化算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108776588A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667120A (zh) * | 2021-01-22 | 2021-04-16 | 百果园技术(新加坡)有限公司 | 互动图标的显示方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107241636A (zh) * | 2017-05-25 | 2017-10-10 | 北京潘达互娱科技有限公司 | 一种虚拟礼物展示方法及装置 |
CN107967102A (zh) * | 2017-12-29 | 2018-04-27 | 北京酷我科技有限公司 | 一种Android系统中的视图控件 |
CN108122272A (zh) * | 2017-12-22 | 2018-06-05 | 北京酷我科技有限公司 | 一种心形点赞效果的绘制方法 |
-
2018
- 2018-06-10 CN CN201810591507.7A patent/CN108776588A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107241636A (zh) * | 2017-05-25 | 2017-10-10 | 北京潘达互娱科技有限公司 | 一种虚拟礼物展示方法及装置 |
CN108122272A (zh) * | 2017-12-22 | 2018-06-05 | 北京酷我科技有限公司 | 一种心形点赞效果的绘制方法 |
CN107967102A (zh) * | 2017-12-29 | 2018-04-27 | 北京酷我科技有限公司 | 一种Android系统中的视图控件 |
Non-Patent Citations (2)
Title |
---|
MRR: "Android高级UI特效直播点赞动画效果", 《脚本之家HTTPS://WWW.JB51.NET/ARTICLE/137480.HTM》 * |
逆世风灵: "Android实现点赞动画(27)", 《脚本之家HTTPS://WWW.JB51.NET/ARTICLE/104384.HTM》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667120A (zh) * | 2021-01-22 | 2021-04-16 | 百果园技术(新加坡)有限公司 | 互动图标的显示方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102283613B1 (ko) | 아바타 생성 사용자 인터페이스 | |
US11593980B2 (en) | Customized user interface for electronic communications | |
DE202015006141U1 (de) | Elektronische Touch-Kommunikation | |
CN103034406B (zh) | 用于在触摸装置中操作功能的方法和设备 | |
CN104750490B (zh) | 界面动画实现方法及系统 | |
JP2020187775A (ja) | アバター作成ユーザインターフェース | |
CN107870690A (zh) | 用于生成触觉输出的设备、方法和图形用户界面 | |
CN109219796A (zh) | 实时视频上的数字触摸 | |
DE112015004021T5 (de) | Elektronische touch-kommunikation | |
CN107430489A (zh) | 共享用户可配置的图形构造 | |
DE112020002268T5 (de) | Vorrichtung, verfahren und computerlesbares medium zur darstellung von dateien computergenerierter realität | |
DE202015005999U1 (de) | Benutzerschnittstelle zum Einschränken von Meldungen und Alarmen | |
CN106874338A (zh) | 用于利用视觉和/或触觉反馈操纵用户界面对象的设备、方法和图形用户界面 | |
CN110333926A (zh) | 在图形消息传送用户界面中应用确认选项 | |
CN110460797A (zh) | 创意相机 | |
CN106844659A (zh) | 一种多媒体数据处理方法和装置 | |
CN106445184A (zh) | 虚拟计算机键盘 | |
DE112013002412T5 (de) | Vorrichtung, Verfahren und grafische Benutzeroberfläche zum Bereitstellen von Rückmeldung für das Wechseln von Aktivierungszuständen eines Benutzerschnittstellenobjekts | |
CN106775229A (zh) | 一种桌面图标操作方法和装置 | |
KR20230174281A (ko) | 다수의 애플리케이션들과의 아바타 통합 | |
CN113114841A (zh) | 动态壁纸获取方法、装置 | |
CN106528156B (zh) | 一种页面数据处理方法和装置 | |
CN108540863A (zh) | 基于人脸表情的弹幕设置方法、存储介质、设备及系统 | |
CN108762879A (zh) | 一种点赞效果的实现方法 | |
JP2017174090A (ja) | 情報処理装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181109 |
|
RJ01 | Rejection of invention patent application after publication |