排行榜用的是RecyclerView显示,适配器使用BaseQuickAdapter,效果如下

1.RecycylerView适配器的使用

先引入依赖,然后新建类RegionList2Adapter继承基类

implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.46'//RecyclerView适配器
//当前使用的战区列表适配器
public class RegionList2Adapter extends BaseQuickAdapter<RegionUser, BaseViewHolder> {public RegionList2Adapter(int layoutResId, @Nullable List<RegionUser> data) {super(layoutResId, data);}@Overrideprotected void convert(BaseViewHolder helper, RegionUser item) {//先赋值默认的Bitmaphelper.setText(R.id.user_number,item.getNumber().toString()).setText(R.id.user_combatPower,item.getCombatPower().toString());((ImageView)helper.getView(R.id.user_image)).setImageBitmap(item.getImageId());JMessageClient.getUserInfo(item.getPhone(), new GetUserInfoCallback() {@Overridepublic void gotResult(int i, String s, UserInfo userInfo) {if(i==0){userInfo.getAvatarBitmap(new GetAvatarBitmapCallback() {@Overridepublic void gotResult(int i, String s, Bitmap bitmap) {if(i==0){//赋值头像((ImageView)helper.getView(R.id.user_image)).setImageBitmap(bitmap);}}});//如果有用户名if(TextUtils.isEmpty(userInfo.getNickname())){helper.setText(R.id.user_name,userInfo.getUserName());}else{helper.setText(R.id.user_name,userInfo.getNickname());}}}});}
}

其中JMessageClient.getUserInfo()等是异步获取,这个适配器相当于每个item单独加载,正好适用于异步加载。

2.在Activity中

RecyclerView recyclerView = view.findViewById(R.id.recycler_view_3);
LinearLayoutManager layoutManager = new LinearLayoutManager(this.getActivity());
recyclerView.setLayoutManager(layoutManager);
...
...
//循环得到List<RegionUser>,赋给适配器regionList2Adapter
for (UserListInfo userListInfo:userListInfos){RegionUser regionUser1=new RegionUser(userListInfos.indexOf(userListInfo)+1,userListInfo.getUname(),bitmap,  //默认的图片userListInfo.getCombatPower(),userListInfo.getPhone());regionUsers.add(regionUser1);}
RegionList2Adapter regionList2Adapter = new RegionList2Adapter(R.layout.region_user_item,regionUsers);
recyclerView.setAdapter(regionList2Adapter);

3.region_user_item.xml布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:background="@drawable/bg_username"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:layout_marginTop="8dp"><RelativeLayoutandroid:layout_width="100dp"android:layout_height="50dp"android:layout_gravity="center_vertical"><LinearLayoutandroid:layout_width="50dp"android:layout_height="match_parent"android:gravity="center"><TextViewandroid:id="@+id/user_number"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="23sp" /></LinearLayout><de.hdodenhof.circleimageview.CircleImageViewandroid:id="@+id/user_image"android:layout_width="50dp"android:layout_height="50dp"android:layout_marginLeft="55dp" /></RelativeLayout><TextViewandroid:id="@+id/user_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_vertical"android:textSize="18sp"android:layout_marginLeft="10dp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:gravity="right|center_vertical"><TextViewandroid:id="@+id/user_combatPower"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="18sp"android:layout_marginRight="20dp" /></LinearLayout></LinearLayout>

借鉴文章:

Android开发丶万能适配器BaseQuickAdapter和刷新控件SmartRefreshLayout搭配Recyclerview实现列表界面

https://www.shangmayuan.com/a/c182a6aef10b4a5d912265cf.html

android 排行榜中异步加载头像图片相关推荐

  1. Android之ListView异步加载图片且仅显示可见子项中的图片

    折腾了好多天,遇到 N 多让人崩溃无语的问题,不过今天终于有些收获了,这是实验的第一版,有些混乱,下一步进行改造细分,先把代码记录在这儿吧. 网上查了很多资料,发现都千篇一律,抄来抄去,很多细节和完整 ...

  2. ios html异步加载图片,iOS 异步加载本地图片

    iOS 异步加载本地图片 问题 当某个界面使用系统API + (nullable UIImage *)imageNamed:(NSString *)name;加载了过多本地图片资源时,不可避免的会产生 ...

  3. Unity 制作翻书电子书,外部异步加载千张图片(一)

    Unity 制作翻书电子书,外部异步加载千张图片(一) Hello!这是我的第一篇文章,希望在你阅读这篇文章之后对你能有帮助. 之前我做过两次电子书的程序,用的都是网上随便一搜就能找到的插件,很方便, ...

  4. 在Vue中异步加载数据渲染到Dom

    在Vue中异步加载数据渲染到Dom 问题 <div v-for="o in resmessage" :key="o" class="text i ...

  5. Unity 制作翻书电子书,外部异步加载千张图片(二)

    Unity 制作翻书电子书,外部异步加载千张图片(二) Hello!这是我的第二篇文章,希望在你阅读这篇文章之后对你能有帮助. 上文完成的程序,我说过只是解决了当前的问题,存在了很多瑕疵.例如:1.替 ...

  6. android webview加载不出来,【新手有关问题】Android浏览器中WebView加载不出网页

    当前位置:我的异常网» Android » [新手有关问题]Android浏览器中WebView加载不出网 [新手有关问题]Android浏览器中WebView加载不出网页 www.myexcepti ...

  7. Android利用Volley异步加载(JSON和图片)完整示例

    android的json解析部分都在包org.json下,主要有以下几个类: JSONObject:可以看作是一个json对象,这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value) ...

  8. Android实现ListView异步加载图片总结

    参考自http://blog.csdn.net/wanglong0537/article/details/6334005# http://www.cnblogs.com/slider/archive/ ...

  9. android webview 图片异步加载,Webview 图片异步加载及bug解决

    在项目中新闻显示需要使用图片的异步加载,并且在加载图片前和加载图片失败时显示默认图片. 关于webview中图片的异步加载的思路如下: 方案一:由前端同学全权负责(使用js实现异步加载) 方案二:an ...

最新文章

  1. c#用控制台程序安装启动停止卸载服务
  2. 【整理】Server.Variables属性大全
  3. android 应用搬家 分区,把安装在SD卡的应用存在DATA分区的数据移到SD卡上
  4. 129 MySQL数据类型(重要)
  5. lua把userdata写入mysql_Lua中的userdata
  6. python判断字符串相等_python3,判断字符串是否相等,学习过程中,我用了四种做法都错,求指点。。。...
  7. 树莓派4b连接手机热点wifi及远程桌面连接
  8. php给超链接添加图标,图片超链接怎么设置
  9. SQLite3介绍及SQL语句详解(SQLite一)
  10. 为何天搜科技这些互联网企业对杭州情有独钟?
  11. ContextCapture | 无人机倾斜摄影技术在农村不动产确权中的应用
  12. C语言:创建各类三角形图案
  13. P4199-FFT,manacher
  14. [MAC]如何查看已用端口
  15. 第七章 如何增加收入
  16. 基于的Java的十进制转二进制实现
  17. 待办日程用什么软件好 2022好用的便签记事日程管理软件推荐
  18. 16.【Linux】window和linux下文件格式相互转换
  19. Review KD(2)
  20. kaggle比赛tweet_sentiment_extraction,带你上0.71分数

热门文章

  1. 解决Linux局域网不能相互访问
  2. 用python绘制斐波那契螺旋线
  3. OpenGL简单介绍
  4. Android基本控件之GridView
  5. 2020icpc上海 Mine Sweeper II (思维)
  6. windows、mac、Linux 各系统字节换算单位
  7. android项目中自定义顶部标题栏,Android项目中自定义顶部标题栏
  8. 程序员的职业规划_从菜鸡到大佬——程序员们,请收下这份职业规划全攻略!...
  9. Python爬虫实战系列(一)-request爬取网站资源
  10. VC2010添加64位编译模式