如何动态更改图库中的项目?

时间:2012-05-24 15:29:42

标签: android dynamic gallery adapter

在我的Android应用程序中我有这个场景 - 我有一个画廊,我必须显示一些图像。 我总共有13张图片,每张图片都是通过调用带有一些参数的函数得到的。

现在在我的适配器库中,我一次只能传递7个图像,当用户滚动浏览库时,我应该更新库项目。 例如。我的图像是{0,1,2,3,4,5,6,7,8,9,10,11,12}。

我第一次只能在中央显示屏上显示{3,4,5,6,7,8,9} 现在,如果用户向右滚动我想从左端移除3并在右端添加10,以便适配器阵列变为{4,5,6,7,8,9,10},其中7位于中心,依此类推

类似地,如果用户向左滚动,我想从右端移除9并在左端添加2,以便适配器阵列变为{2,3,4,5,6,7,8},其中5为中心

我使用LinkedList存储我的项目

我怎样才能做到这一点。 请帮助。

1 个答案:

答案 0 :(得分:0)

只需使用自定义类扩展图库,覆盖onFling()检测手势(向左或向右)并执行删除操作。

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
    if (Math.abs(velocityX) > Math.abs(velocityY)) {
        // This is an horizontal fling
            if (velocityX < 0) {
                // From left to right => go forward 
                //  remove 3
                return true;
            } else if (velocityX > 0) {
                // From right to left => go backward
                //  remove 7
                return true;
            }
    } else {
        // This is a vertical fling
    }

    return false;
}