欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现朋友圈点赞列表

程序员文章站 2022-07-11 17:51:03
本文实例为大家分享了android朋友圈点赞列表的具体代码,供大家参考,具体内容如下 android实现朋友圈评论回复列表 android实现朋友圈点赞列表 andr...

本文实例为大家分享了android朋友圈点赞列表的具体代码,供大家参考,具体内容如下

android实现朋友圈评论回复列表

android实现朋友圈点赞列表

android实现朋友圈多图显示功能

正文

效果图:

Android实现朋友圈点赞列表

具体实现代码

likesview

public class likesview extends textview {

 private context mcontext;
 private list<userbean> list;

 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<userbean> list) {
 this.list = list;
 }

 /**
 * 刷新点赞列表
 */
 public void notifydatasetchanged() {
 if (list == null || list.size() <= 0) {
  return;
 }
 spannablestringbuilder builder = new spannablestringbuilder();
 builder.append(setimagespan());
 for (int i = 0; i < list.size(); i++) {
  userbean item = list.get(i);
  builder.append(setclickablespan(item.getusername(), item));
  if (i != list.size() - 1) {
  builder.append(" , ");
  } else {
  builder.append(" ");
  }
 }

 settext(builder);
 setmovementmethod(new circlemovementmethod(0xffcccccc, 0xffcccccc));
// setmovementmethod(linkmovementmethod.getinstance());
 }

 /**
 * 设置评论用户名字点击事件
 *
 * @param item
 * @param bean
 * @return
 */
 public spannablestring setclickablespan(final string item, final userbean bean) {
 final spannablestring string = new spannablestring(item);
 clickablespan span = new clickablespan() {
  @override
  public void onclick(view widget) {
  // todo: 2017/9/3 评论用户名字点击事件
  toast.maketext(mcontext, bean.getusername(), toast.length_short).show();
  }

  @override
  public void updatedrawstate(textpaint ds) {
  super.updatedrawstate(ds);
  // 设置显示的文字颜色
  ds.setcolor(0xff387dcc);
  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.img_like_icon, dynamicdrawablespan.align_baseline),
  0, 1, spannable.span_exclusive_exclusive);
 return imgspantext;
 }

}

附: circlemovementmethod , userbean 代码请到 android 朋友圈之评论回复列表 中获取,这里不重复添加。

用法

<com.lvfq.myworkingtest.dynamic.view.likesview
 android:id="@+id/likeview"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_margin="@dimen/dp_10"
 android:textsize="@dimen/sp_18" />

likeview = lvv.find(this, r.id.likeview);
likeview.setlist(data.getlikes());
likeview.notifydatasetchanged();

代码已整理到github

附:如果需要完整朋友圈项目的话,这里推荐一个 github 项目仿微信实现的朋友圈

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。