android - 带有许多图像的 GridView 导致滚动缓慢/粗糙

标签 android gridview scroll

在我的应用程序中,我有一个包含许多图像(约 100 张)的 GridView,布局与此类似:

我正在 HTC Desire HD 上测试我的应用程序。当我在 gridview 中有 88 个图像时,滚动很流畅。现在,如果我添加 10 张图像,那么我总共有 98 张,就再也没有任何接近平滑滚动的东西了——它现在“慢”了,更粗糙了,就像是大块地滚动。

此 gridview 存在于 TabLayout 中,其中我还有一个包含许多元素的 ListView。在 gridview 中使用 98 个图像时,此 ListView 中的滚动也会受到影响。所以就好像整个应用程序以某种方式变慢了(或者使用了手机无法管理的更多“电量”)。

有什么方法可以优化 gridview,使其不那么耗电?

(PS:当使用大约 150 张图像时,应用程序只是停止工作(它断开连接,并且日志/调试中没有显示错误)。)

最佳答案

确保您在适配器的 getView() 方法中回收图像。像这样:

public View getView(int position, View convertView, ViewGroup parent) {

        // if it's not recycled, initialize some attributes
        if (convertView == null) {

            convertView = new View(...);

        }
...

而不是每次调用 getView() 时都创建新 View 。

关于android - 带有许多图像的 GridView 导致滚动缓慢/粗糙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6928965/

相关文章:

c# - 在 C# 中调用 Response.End() 后重定向到另一个页面

android - 两个方向的 ScrollView

javascript - scrollLeft 动画 - 干净的 Vanilla JS

c# - 如何检测滚动条何时到达数据 GridView 的末尾?

android - 将 Android TV 添加到现有应用程序,现在只能支持回 Android SDK 17

android - 在 Firebase 控制台上查看发送的消息

c# - 如何将gridview中的列设置为自动生成的超链接

c# - 如何对列为整数的 GridView 进行排序

java - ViewCompat.postInvalidateOnAnimation(View v) 在为按钮设置动画时不起作用

android - 创建具有固定标题行的 TableView(不滚动)