头像叠加android_使用RecyclerView实现点赞头像叠加效果
概要:点赞头像效果使用的地方很多,实现的方式也很多,下面通过使用RecyclerView实现一下
1、创建布局文件 一个recyclerview,一个点赞图片
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="50dp"
android:orientation="horizontal">
android:id="@+id/rv_like_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layoutAnimation="@anim/rv_slide_in_anim"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:id="@+id/iv_like"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginTop="15dp"
android:layout_marginEnd="15dp"
android:src="@drawable/img_explore_like"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_goneMarginEnd="15dp" />
recyclerview添加了动画效果,动画文件如下
rv_slide_in_anim
android:animation="@anim/slide_in_left"
android:animationOrder="normal"
android:delay="20%" />
slide_in_left
android:duration="350"
android:fromXDelta="-100%p"
android:toXDelta="0" />
android:fromAlpha="0.8"
android:toAlpha="1.0"
android:duration="350"
/>
2、Activity逻辑代码
val headerUrl=R.drawable.dog_01
rv_like_header.layoutManager=LinearLayoutManager(this).apply { orientation=LinearLayoutManager.HORIZONTAL }
val headerList= arrayListOf(headerUrl)
val mAdapter= LikeMemberHeaderAdapter(this,headerList)
rv_like_header.adapter=mAdapter
iv_like.setOnClickListener {
mAdapter.addData(headerUrl)
}
3、Adapter代码
/**
* @date 2020/7/24
* @author peter
* @desc 点赞头像adapter
*/
class LikeMemberHeaderAdapter(context: Context, data: ArrayList) : RecyclerView.Adapter() {
private var mDatas: ArrayList = data
private val mContext = context
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HeaderHolder {
return HeaderHolder(LayoutInflater.from(parent.context).inflate(R.layout.item_member_header, parent, false))
}
override fun getItemCount(): Int {
return mDatas.size
}
fun addData(headerUrl: Int) {
// 从左边添加
mDatas.add(0, headerUrl)
notifyDataSetChanged()
}
override fun onBindViewHolder(holder: HeaderHolder, position: Int) {
Glide.with(mContext).load(mDatas[position]).into(holder.ivMemberHeader)
// 最后一个显示全部
if (position == mDatas.size - 1) {
setMargins(holder.headerRoot, 0, 0, 0, 0)
} else {
setMargins(holder.headerRoot, 0, 0, -12, 0)
}
}
private fun setMargins(v: View, l: Int, t: Int, r: Int, b: Int) {
if (v.layoutParams is MarginLayoutParams) {
val p = v.layoutParams as MarginLayoutParams
p.setMargins(l, t, r, b)
v.requestLayout()
}
}
class HeaderHolder(view: View) : RecyclerView.ViewHolder(view) {
val headerRoot: FrameLayout = view.findViewById(R.id.lin_header_root)
val ivMemberHeader: RoundImageView = view.findViewById(R.id.iv_member_header)
}
}
核心代码就是通过设置item的margin值实现叠加效果,通过添加数据,刷新adapter实现,示例代码中默认从索引0添加的,可以根据需求自行调整,RoundImageView是一个自定义的圆形图片,此处不再赘述
4、 Adapter item布局文件
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/lin_header_root"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:id="@+id/iv_member_header"
android:layout_width="17dp"
android:layout_height="17dp"
android:scaleType="centerCrop"
app:maskDrawable="@drawable/circle_mask"
tools:src="@drawable/member_default_header" />
5、效果图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
头像叠加android_使用RecyclerView实现点赞头像叠加效果相关推荐
- 头像叠加android_Android自定义ViewGroup实现堆叠头像的点赞Layout
简介 这样的点赞列表怎么样?之前做社区的时候也有类似的点赞列表,但是没有这样重叠,一个小小的改变,个人感觉逼格提高不少. 这个很有规则,就是后一个头像会覆盖一部分到前一个头像上,头像多了就像一串糖葫芦 ...
- typecho本地上传头像_微信QQ抖音透明头像制作方法,还有不会的吗?
精彩内容每天更新 她搂着被子从床上坐起来,愣了十几秒,听到厨房有动静后,这才撒着脚往房间外跑,看到一抹修长背影在厨房里忙活. 邵允琛做好早餐从厨房出来,见陆瑶穿着睡裙站那,眉头皱了皱," ...
- ios 裁剪圆形头像_iOS开发笔记:实现圆形头像
初学iOS,记录一下自己遇到的一些问题,也希望能够对别人有所帮助 一般应用的个人头像如上图,圆形头像算是每款App中最常见的东西了,刚好最近有遇到这个问题,并且顺利解决了,其实很简单,调用layer这 ...
- 解决GitHub中头像显示异常、设置不了头像、README图片无法显示等问题
解决GitHub中头像显示异常.设置不了头像.README图片无法显示等问题 很多时候在访问 GitHub 官网时容易出现 GitHub 头像显示异常的问题.虽然这个问题无关痛痒,不过对于有强迫症 ...
- 微信头像挂件来了,想在头像加什么就来加什么吧!
之前还有小伙伴在后台给我说头像想加V或者加其他挂件,今天他来了,可能很多小伙伴都不知道这个小程序已经上线了,今天我就给大家说一说! 功能还是有几个,但是我今天主要讲的是这个,选择头像挂件-去相册选择我 ...
- HTML人头像变形了,关于Motion Morph(动态头像变形)的使用
于Motion Morph(动态头像变形)的使用,好象没人发过,现在我把老外的范例贴出来供大家参考(原贴发在http://www.jydh.com.cn/bbs/dispbbs.asp?boardID ...
- php更换wordpress用户头像,WordPress如何添加用户自定义上传头像功能
使用WordPress建站的朋友应该知道,WordPress本身是没有上传自定义头像功能的,如果要更换头像,步骤是非常麻烦的. 而在我们开发一款WordPress主题中,特别是多用户的主题,让注册用户 ...
- 电脑账户头像怎么删掉_win10系统账户头像如何删除?windows10账户头像清除方法...
不少用户在升级win10正式版后,会设置微软账户的头像,但是在使用微软账户登录时,账户头像会自动同步到当前设备中,这样也行会给我们带来一些不便.那么,win10系统账户头像该如何删除呢?接下来,小编就 ...
- 电脑账户头像怎么删掉_win7系统账户头像删除的具体办法
win7系统使用久了,好多网友反馈说win7系统账户头像删除的问题,非常不方便.有什么办法可以永久解决win7系统账户头像删除的问题,面对win7系统账户头像删除的图文步骤非常简单,只需要1.在开始菜 ...
最新文章
- nginx 添加自定义头部信息
- TCP超时与重传机制与拥塞避免
- xp下添加linux启动项,grub.cfg--XP+ Ubuntu10.04双系统安装后无XP启动项
- .NET Core 3.1 的REST 和gRPC 性能测试
- 设计: 未来Web设计的7大趋势
- php 跨域 验证_php 前后端分离开发进行跨域请求时ajax发送验证参数token的header头解决方法...
- 第二次发布 - 轻剑傲风的RSS简易阅读器改装版。
- java 代码行数统计工具_代码行数统计工具
- Guass_seidel迭代法
- php 使用alert,php中alert函数的用法
- Python也有对象了哈哈哈哈哈哈嗝
- 2018年(第17届)中国软件业务收入前百家企业名单
- 新南威尔士大学计算机博士申请,unsw大学研究生
- 单片机计时器100000秒以内
- 内网安装python第三方包_内网安装python第三方包
- 企业内部邮件服务器的架构
- 芋道 Spring Boot 热部署入门
- 梅科尔工作室-杜涵宁-鸿蒙笔记4
- mkdir命令——创建目录命令
- 外汇天眼:美国通胀数据公布前,诸央行消息甚嚣尘上