java - GridView 滚动很慢

标签 java android android-gridview layout-inflater

这是我的 GridView 的自定义适配器类。我曾尝试通过调用 LayoutInflater 一次并使用 View 持有者来优化网格滚动的速度,但现在滚动速度非常慢。

private Context mContext;
private final String[] web;
private final int[] Imageid;

public CustomGrid(Context c, String[] web, int[] Imageid) {
    mContext = c;
    this.Imageid = Imageid;
    this.web = web;
}

class MyViewHolder {
    ImageView imageView;
    TextView textView;

    MyViewHolder(View v) {
        imageView = (ImageView) v.findViewById(R.id.grid_image);
        textView = (TextView) v.findViewById(R.id.grid_text);
    }

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View grid = convertView;
    MyViewHolder viewHolder;

    if (grid == null) {
        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        grid = inflater.inflate(R.layout.grid_single, null);
        viewHolder = new MyViewHolder(grid);
        grid.setTag(viewHolder);
    } else {
        grid = convertView;
        viewHolder= (MyViewHolder) grid.getTag();
    }
    viewHolder.textView.setText(web[position]);
    viewHolder.imageView.setImageResource(Imageid[position]);
    return grid;
}

最佳答案

我认为您的代码应该可以正常工作。唯一可能的原因是您正在加载的图像太大,以至于内存无法同时加载所有图像。

您可能想尝试使用较小的尺寸。或者您可以考虑使用 Glide加载您的图像,因为它会根据 ImageView 的大小调整图像的大小。

关于java - GridView 滚动很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45423741/

相关文章:

Android - 更新 res/raw 文件夹中的文件

android - 上下文在另一个 Activity 的 fragment 中不可用

java - 我的 GridView 未显示

来自匿名方法的java引用 "this"

java - 从树中获取随机节点

Java String UTF-8 将 0xFF 解码为 0xC3BF

javascript - 无法使用 JavaScript 重定向到 iPhone、iPad

java - 不能从静态上下文引用非静态变量牌组

java - 尝试计算 Android 中两个坐标之间的距离时得到荒谬的值

android - 自动调整android中gridview中单元格的大小