Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义列表视图中的滚动延迟_Java_Android_Listview - Fatal编程技术网

Java 自定义列表视图中的滚动延迟

Java 自定义列表视图中的滚动延迟,java,android,listview,Java,Android,Listview,我的项目是一本学费管理书,在这本书中,我使用自定义的listView列出了所有学生的照片、姓名、ID、活动中的课程,它运行良好,但当添加更多学生时,它显示listView滚动滞后。使用下面的适配器,我在listView中面临滚动滞后。我减小了存储在SQLite数据库中的图像的大小(小于500kb),但它仍然不能正常工作** 适配器代码 公共类MyListAdapter扩展BaseAdapter{ 私人语境; 专用int布局; 私有ArrayList记录列表; 公共MyListAdapter(活动

我的项目是一本学费管理书,在这本书中,我使用自定义的listView列出了所有学生的照片、姓名、ID、活动中的课程,它运行良好,但当添加更多学生时,它显示listView滚动滞后。使用下面的适配器,我在listView中面临滚动滞后。我减小了存储在SQLite数据库中的图像的大小(小于500kb),但它仍然不能正常工作**

适配器代码

公共类MyListAdapter扩展BaseAdapter{
私人语境;
专用int布局;
私有ArrayList记录列表;
公共MyListAdapter(活动上下文、int布局、ArrayList记录列表){
this.context=上下文;
这个布局=布局;
this.recordlist=记录列表;
}
@凌驾
public int getCount(){
返回recordlist.size();
}
@凌驾
公共slmodel getItem(内部位置){
返回记录列表。获取(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
私有类视窗持有者{
图像视图图像视图;
TextView名称、id、sclass;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行=转换视图;
ViewHolder=新的ViewHolder();
if(行==null)
{
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
行=充气机。充气(布局,空);
holder.name=row.findViewById(R.id.bname);
holder.id=row.findviewbyd(R.id.sid);
holder.sclass=行findViewById(R.id.SCURSE);
holder.imageView=row.findviewbyd(R.id.imageView);
row.setTag(支架);
}
否则{
holder=(ViewHolder)row.getTag();
}
slmodel model=recordlist.get(位置);
holder.name.setText(model.getName());
holder.id.setText(model.getId().toString());
holder.sclass.setText(model.getsclass());
byte[]recordimgae=model.getImgae();
位图位图=位图工厂.decodeByteArray(recordimgae,0,recordimgae.length);
holder.imageView.setImageBitmap(位图);
返回行;
}
}

欢迎来到SO,祝贺您发布第一个问题

使用图像加载库,如或 使用这些库,您可以:

  • 调整图像大小
  • 使用缓存减少加载时间
  • 自动处理后台线程以加载和转换位图
滑翔示例:

Glide.with(context)
                    .load(recordImage)
                    .asBitmap()
                    .diskCacheStrategy(DiskCacheStrategy.ALL)
                    .into(holder.imageView);

在.asBitmap()处显示错误//无法解析'RequestBuilder'中的方法'asBitmap',感谢它现在所做的工作……对于位图,它写为->Glide.with(context).asBitmap().load(recordImage).diskCacheStrategy(diskCacheStrategy.ALL).into(holder.imageView)@mihirSharma很好,除此之外,尝试用
RecyclerView
替换您的
ListView
。它提高了长列表的性能。
Glide.with(context)
                    .load(recordImage)
                    .asBitmap()
                    .diskCacheStrategy(DiskCacheStrategy.ALL)
                    .into(holder.imageView);