我在滚动和 listItems 之间的空间时遇到滞后问题。如果有人可以提示我我的代码有什么问题,我将非常感谢。
当我的应用程序启动时,我从我的服务器下载所有缩略图并像这样保存它们:
FileOutputStream fos = openFileOutput(uniqueName, Context.MODE_PRIVATE);
fos.write(bytes);
fos.close();
所有图片都是 100px x 75px
列表项:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/pic"
android:layout_width="100dp"
android:layout_height="75dp">
</ImageView>
</RelativeLayout>
然后我像这样使用 asyncTask 加载图像:
private Drawable d;
@Override
protected Integer doInBackground(String... arg0) {
File filePath = ctx.getFileStreamPath(fileName);
if (filePath.exists()) {
d = Drawable.createFromPath(filePath.toString());
return 1;
}
return 0;
}
@Override
protected void onPostExecute(Integer success) {
if (success == 1) {
listener.onCacheThumbCompleted(d);
}
}
最后将图片添加到listItem中的imageView中:
public void onCacheThumbCompleted(Drawable drawable) {
iv.setImageDrawable(drawable);
}
但是滚动的时候一点都不流畅。此外,图像似乎没有完全填满 imageView。即使我将 dividerHeight 设置为 0,它也是 listItems 之间的空格。 Same problem他通过调整图片大小解决了这个问题,但我是否需要调整图片大小/缩放比例才能解决我的问题?
最佳答案
流畅的 ListView
在 Android 上可能相当复杂。我找到的最好的例子是 Shelves罗曼盖伊。它具有许多复杂的模式并且可能难以消化,但如果您确实消化了所有内容,那么当您从另一边出来时,您会变得更聪明 :)
列出一些最重要的增强功能:
- 延迟加载图片
- ViewHolder
- 调整图片大小
您也可以搜索这些增强功能并自行实现。
关于android - 我必须调整从 listView 中使用的服务器下载的图像的大小吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17565190/