要实现一个仿微信那样的点赞列表,显示好友的昵称,中间用逗号隔开,并且点击好友昵称跳转到好友的详情页或者实现其他的操作。效果图如下:

第一步:我们需要先定义一个view,去实现列表的显示和点击事件:

public class LikesView extends TextView {private Context mContext;private List<LikeBean> list;private int size;public LikesView(Context Context) {this(Context, null);}public LikesView(Context Context, @Nullable AttributeSet attrs) {this(Context, attrs, 0);}public LikesView(Context Context, @Nullable AttributeSet attrs, int defstyleattr) {super(Context, attrs, defstyleattr);mContext = Context;}/*** 设置点赞数据** @param list*/public void setList(List<LikeBean> list,int size) {this.list = list;this.size = size;}/*** 刷新点赞列表*/public void notifyDataSetChanged() {if (list == null || list.size() <= 0) {return;}SpannableStringBuilder builder = new SpannableStringBuilder();builder.append(setImageSpan()).append("  ");for (int i = 0; i < list.size(); i++) {// 我写的最多显示9个昵称,超过的就不显示了if (i > 9) {break;}LikeBean item = list.get(i);builder.append(setClickableSpan(item.getName(), item));// 昵称之间用逗号隔开,也可以定义其他符号,看心情咯if (i != list.size() - 1) {builder.append(" , ");} else {builder.append(" ");}}// 如果长度超过10个,就省略显示if (size > 10) {builder.append("等" + size + "个人点赞了");}setText(builder);setMovementMethod(new LinkMovementMethod());}/*** 设置用户名字点击事件** @param item* @param bean* @return*/public SpannableString setClickableSpan(final String item, final LikeBean bean) {final SpannableString string = new SpannableString(item);ClickableSpan span = new ClickableSpan() {@Overridepublic void onClick(View widget) {// TODO 这里写你的逻辑,处理昵称的点击事件}@Overridepublic void updateDrawState(TextPaint ds) {super.updateDrawState(ds);// 设置昵称的颜色ds.setColor(Color.parseColor("#3865A8"));ds.setUnderlineText(false);}};string.setSpan(span, 0, string.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);return string;}/*** 设置点赞图标** @return*/private SpannableString setImageSpan() {String text = " ";SpannableString imgSpanText = new SpannableString(text);// 这里是在点赞列表的最前面加上心形的图标,可以改成自己需要的imgSpanText.setSpan(new ImageSpan(getContext(), R.mipmap.blue_like,DynamicDrawableSpan.ALIGN_BASELINE),0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);return imgSpanText;}

第二步:控件定义好了,就可以开始使用了,先在布局里面写一下:

<LikesViewandroid:id="@+id/like_view"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginBottom="10dp"android:nestedScrollingEnabled="false"<!--设置字体直接的间隔--!>android:lineSpacingExtra="3dp" />

第三步:在activity中设置数据源并刷新列表:

LikesView mLikesView = findViewById(R.id.like_view);
// 数据源类型可以自己根据实际要求去改变,我这里里面放了user_id,name,head_img_url
List<LikeBean> mLikeList = new ArrayList();
mLikeList.add(new LikeBean("1","张三",""));
mLikeList.add(new LikeBean("2","李四",""));
mLikeList.add(new LikeBean("3","王五",""));
// 我项目里并没有把所有的点赞好友返回过来,所以把size单独分开写了
mLikesView.setList(mLikeList , mLikeList.size());
mLikeView.notifyDataSetChanged();

第四步:这样子,就全部实现了,一个简单的好友点赞列表的实现。

安卓实现仿微信点赞好友昵称列表,中间用逗号隔开相关推荐

  1. Android(安卓)高仿微信朋友圈九宫格列表

    目前基本复现微信的朋友圈的浏览效果 直接上效果图吧! 感觉不错的话多多支持吧 由于代码比较多,目前只将核心的适配器代码放出来,如果需要全部的话,下载源码吧,源码地址在最后 适配器代码: private ...

  2. android微信点赞ui,Android中使用PopupWindow 仿微信点赞和评论弹出

    微信朋友圈的点赞和评论功能,有2个组成部分:左下角的"更多"按钮:点击该按钮后弹出的对话框: PopupWindow,弹出框使用PopupWindow实现,这是点赞和评论的载体,具 ...

  3. 【Android 仿微信通讯录 导航分组列表-上】使用ItemDecoration为RecyclerView打造带悬停头部的分组列表

    *本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 转载请标明出处: http://blog.csdn.net/zxt0601/article/details/52355199 本文 ...

  4. 仿微信朋友圈动态列表

    仿微信朋友圈动态列表,如下图: Demo下载

  5. android仿微信点击好友,安卓开发仿微信联系人列表-机器人列表视图仿微通道聊天多久最底部滑动...

    楼主你好!根据你的描述,让我给你答案! :新内容加进来,列表视图重新为setSelection后,定位结束后,拉起一个页面放. . 希望你能有所帮助,如果满意,请记得采纳像下拉条为微信好友如何实现 简 ...

  6. 安卓开发— —仿微信界面(一)

    目录 一.项目内容 二.代码实现 1.项目结构 2.头部代码 3.底部代码 4.四个内容界面 5.窗体总布局 6.MainActivity实现点击图标与页面的互动 三.运行效果 四.总结 一.项目内容 ...

  7. 安卓开发仿微信图片拖拽_仿微信朋友圈发表图片拖拽和删除功能

    原标题:仿微信朋友圈发表图片拖拽和删除功能 中国联通在香港公布了上市公司2017年中期业绩.2017年上半年,公司主要业绩指标持续向好,收入稳步回升,服务收入达到人民币1,241.1亿元,同比增长3. ...

  8. android使用popupwindow仿微信点赞功能

    实现微信朋友圈的点赞功能,代码很简单,就是设置一个布局,然后使用popupwindow让这个布局显示出来就可以了 实现效果图: 1.主界面的布局就是一个listview,这里就不贴了,需要的话请自己补 ...

  9. 安卓开发仿微信图片拖拽_Android仿微信朋友圈图片浏览器(支持图片手势缩放,拖动)...

    [实例简介] Android仿微信朋友圈图片浏览器(支持图片手势缩放,拖动) [实例截图] [核心代码] ImageDemo-2014-02-18 └── ImageDemo-2014-02-18 ├ ...

最新文章

  1. 大型ERP等数据库系统常见几种设计
  2. Github Actions 中 Service Container 的使用
  3. jQuery常用操作
  4. v4l打开video设备 ,执行VIDIOC_DQBUF,出现Resource temporarily unavailable 问题
  5. 再好的代码没有电也跑不了
  6. 基于模板的通用代码生成器LKGenerator(一)-发布和主要功能介绍
  7. BS结构中,web如何将数据进行DES加密并写道IC卡中
  8. 互联网项目文科程序员的自白
  9. Atitit 人员评价能力模型 目录 1.1. 深度、大局观、 1 1.2. 影响力, 影响力 分享 1 1.3. 业务洞察力 价值识别 1 1.4. 视野 战略和人才 专业 1 1.5.
  10. C#上使用Echarts做报表
  11. SPSS数据处理-数据整理
  12. 排队 (白雪公主与n个小矮人)
  13. 需要管理员权限才能删除文件夹
  14. kaggle TMDB5000电影数据分析和电影推荐模型
  15. 小米手机ROOT操作
  16. java瀑布图表,瀑布图的完美解决方案 [Excel图表]
  17. 经典PID学习感悟(一)-初步认知【比例kp】
  18. 大学生如何在网上赚零花钱,适合学生党可做的零花钱项目
  19. oracle 导出身份证号_oracle 根据身份证号计算出生日期
  20. c语言蚊香数组,蚊香的代码咋弄啊

热门文章

  1. vue——一个页面实现音乐播放器
  2. 论微服务架构设计与应用
  3. 市面常用芯片对应的ARM架构
  4. 看不见的共享电单车战争
  5. iOS 重力感应 学习1 陀螺仪 水平仪 指南针
  6. 含抽水蓄能电站系统的调峰经济调度研究matlab程序(粒子群算法)
  7. 微信小程序 柱状图的使用
  8. 小程序springboot食堂预约订餐系统毕业设计-附源码221554
  9. 拥抱POL正当时,这里有四个故事五个理由
  10. 计算机视觉顶会论文复现,计算机视觉论文_2014年 计算机视觉会议征稿_accv