安卓实现仿微信点赞好友昵称列表,中间用逗号隔开
生活随笔
收集整理的這篇文章主要介紹了
安卓实现仿微信点赞好友昵称列表,中间用逗号隔开
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
要實現一個仿微信那樣的點贊列表,顯示好友的昵稱,中間用逗號隔開,并且點擊好友昵稱跳轉到好友的詳情頁或者實現其他的操作。效果圖如下:
第一步:我們需要先定義一個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();第四步:這樣子,就全部實現了,一個簡單的好友點贊列表的實現。
?
?
?
?
?
總結
以上是生活随笔為你收集整理的安卓实现仿微信点赞好友昵称列表,中间用逗号隔开的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java excel poi 读取已有文
- 下一篇: Python学习 Day31 DOM