概要:点赞头像效果使用的地方很多,实现的方式也很多,下面通过使用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实现点赞头像叠加效果相关推荐

  1. 头像叠加android_Android自定义ViewGroup实现堆叠头像的点赞Layout

    简介 这样的点赞列表怎么样?之前做社区的时候也有类似的点赞列表,但是没有这样重叠,一个小小的改变,个人感觉逼格提高不少. 这个很有规则,就是后一个头像会覆盖一部分到前一个头像上,头像多了就像一串糖葫芦 ...

  2. typecho本地上传头像_微信QQ抖音透明头像制作方法,还有不会的吗?

       精彩内容每天更新 她搂着被子从床上坐起来,愣了十几秒,听到厨房有动静后,这才撒着脚往房间外跑,看到一抹修长背影在厨房里忙活. 邵允琛做好早餐从厨房出来,见陆瑶穿着睡裙站那,眉头皱了皱," ...

  3. ios 裁剪圆形头像_iOS开发笔记:实现圆形头像

    初学iOS,记录一下自己遇到的一些问题,也希望能够对别人有所帮助 一般应用的个人头像如上图,圆形头像算是每款App中最常见的东西了,刚好最近有遇到这个问题,并且顺利解决了,其实很简单,调用layer这 ...

  4. 解决GitHub中头像显示异常、设置不了头像、README图片无法显示等问题

    解决GitHub中头像显示异常.设置不了头像.README图片无法显示等问题   很多时候在访问 GitHub 官网时容易出现 GitHub 头像显示异常的问题.虽然这个问题无关痛痒,不过对于有强迫症 ...

  5. 微信头像挂件来了,想在头像加什么就来加什么吧!

    之前还有小伙伴在后台给我说头像想加V或者加其他挂件,今天他来了,可能很多小伙伴都不知道这个小程序已经上线了,今天我就给大家说一说! 功能还是有几个,但是我今天主要讲的是这个,选择头像挂件-去相册选择我 ...

  6. HTML人头像变形了,关于Motion Morph(动态头像变形)的使用

    于Motion Morph(动态头像变形)的使用,好象没人发过,现在我把老外的范例贴出来供大家参考(原贴发在http://www.jydh.com.cn/bbs/dispbbs.asp?boardID ...

  7. php更换wordpress用户头像,WordPress如何添加用户自定义上传头像功能

    使用WordPress建站的朋友应该知道,WordPress本身是没有上传自定义头像功能的,如果要更换头像,步骤是非常麻烦的. 而在我们开发一款WordPress主题中,特别是多用户的主题,让注册用户 ...

  8. 电脑账户头像怎么删掉_win10系统账户头像如何删除?windows10账户头像清除方法...

    不少用户在升级win10正式版后,会设置微软账户的头像,但是在使用微软账户登录时,账户头像会自动同步到当前设备中,这样也行会给我们带来一些不便.那么,win10系统账户头像该如何删除呢?接下来,小编就 ...

  9. 电脑账户头像怎么删掉_win7系统账户头像删除的具体办法

    win7系统使用久了,好多网友反馈说win7系统账户头像删除的问题,非常不方便.有什么办法可以永久解决win7系统账户头像删除的问题,面对win7系统账户头像删除的图文步骤非常简单,只需要1.在开始菜 ...

最新文章

  1. nginx 添加自定义头部信息
  2. TCP超时与重传机制与拥塞避免
  3. xp下添加linux启动项,grub.cfg--XP+ Ubuntu10.04双系统安装后无XP启动项
  4. .NET Core 3.1 的REST 和gRPC 性能测试
  5. 设计: 未来Web设计的7大趋势
  6. php 跨域 验证_php 前后端分离开发进行跨域请求时ajax发送验证参数token的header头解决方法...
  7. 第二次发布 - 轻剑傲风的RSS简易阅读器改装版。
  8. java 代码行数统计工具_代码行数统计工具
  9. Guass_seidel迭代法
  10. php 使用alert,php中alert函数的用法
  11. Python也有对象了哈哈哈哈哈哈嗝
  12. 2018年(第17届)中国软件业务收入前百家企业名单
  13. 新南威尔士大学计算机博士申请,unsw大学研究生
  14. 单片机计时器100000秒以内
  15. 内网安装python第三方包_内网安装python第三方包
  16. 企业内部邮件服务器的架构
  17. 芋道 Spring Boot 热部署入门
  18. 梅科尔工作室-杜涵宁-鸿蒙笔记4
  19. mkdir命令——创建目录命令
  20. 外汇天眼:美国通胀数据公布前,诸央行消息甚嚣尘上

热门文章

  1. 使用Java 编写将阿拉伯数字转为中文数字的代码
  2. CSS —— 手摸手实现一个文字霓虹灯闪烁特效
  3. 基于Lucene的联系人拼音检索(第一部分)
  4. 搜狗站群系统需要准备哪些?如何使用搜狗工具实现网站收录
  5. oj试题 火车票退票费计算(函数专题)(1103)
  6. [zt] SAP 标准教材和自学方法
  7. 给锂电池充电,充电器的输出电压
  8. LEHDLAB-实验记录
  9. 简单粗暴安卓全屏幕适配
  10. LeetCode T48 Rotate Image