android gridview 滚动滞后

标签 android gridview scroll

我正在编写一个应用程序,该应用程序具有带有一些图像的 GridView ,并且我使用默认的垂直滚动,因为并非所有图像都适合屏幕。我总是滚动,并且有一个新行要显示,在新行的渲染上似乎有滞后。

所有的图像都是可绘制的,所以它不是由加载图像之类的东西引起的,至少,不是明确的。那么,关于如何解决问题的任何想法?滚动在我的 atrix 中滞后,应用程序应该运行的最终设备比它差得多。

编辑 - 这里有一些代码:

public View getView(int position, View convertView, ViewGroup parent) {
    T item = getItem(position);
    Box box = convertView == null ? new Box(mContext) : (Box) convertView;
    onBindModel(box, item);
    return box;
}

@Override
public void onBindModel(Box box, Model item) {
    box.param.putSerializable("model", item);
    box.setDescricao(item.getNome());
    box.getModelImageView().setImageResource(item.thumbResId);
}

编辑

所以,按照建议,只是尝试了这段代码,但仍然得到相同的结果:

@Override
public void onBindModel(final Box box, final Model item) {
    box.param.putSerializable("model", item);
    box.setDescricao(item.getNome());

    new Thread(){
        public void run() {
            Message msg = new Message();
            msg.obj =box.getModelImageView();
            msg.arg1 =item.thumbResId; 

            mHandler.sendMessage(msg);
        }
    }.start();
}

 private Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message message) {
        Bitmap bm = BitmapFactory.decodeResource(getResources(),  message.arg1);
        setImage((ImageView) message.obj,bm);
    }
};

public void setImage(ImageView imgView, Bitmap bm) {
    imgView.setImageBitmap(bm);
}

当滚动到下一行时我遇到了问题,然后它就正常继续了。

提前致谢

最佳答案

All the images are drawables, so it is not cause by something like loading the image, at least, not explicitly.

这不是真的。这项工作是在 UI 线程上完成的。 引用 http://developer.android.com/reference/android/widget/ImageView.html#setImageResource(int)

您可能需要考虑延迟加载图像。各地都广泛讨论了多种方法。谷歌搜索。

关于android gridview 滚动滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6905808/

相关文章:

java - 在 Android 上覆盖应用程序并删除数据库

Android Invalidate() 只有单一 View

c# - 如何检索部分存储在数据库中的日期列表并将其绑定(bind)在c#中的gridview中

jquery - Bootstrap Scrollspy 突出显示所选元素上方的导航元素

jquery - 根据滚动位置更改事件选项卡

android - 如何管理好不同目标的构建环境?

android - 当我尝试调试时应用程序崩溃

c# - ASP.NET 在 GridView 中配置更新按钮

c# - 您可以截断 GridView 中数据绑定(bind)模板字段的结果吗?

jQuery 水平滚动(点击和动画)