0

私のAndroidアプリでは、このシナリオがあります-いくつかの画像を表示する必要があるギャラリーがあります。合計 13 個の画像があり、それぞれがいくつかのパラメーターを指定して関数を呼び出して取得します。

ギャラリー用のアダプターでは、一度に 7 つの画像しか渡すことができず、ユーザーがギャラリーをスクロールすると、ギャラリー アイテムを更新する必要があります。例えば。私の画像は {0,1,2,3,4,5,6,7,8,9,10,11,12} です。

ユーザーが右にスクロールした場合、最初は {3,4,5,6,7,8,9} を取得して表示できるのは中央ディスプレイに 6 だけです。左端から 3 を削除し、右端に 10 を追加します。アダプター配列が {4,5,6,7,8,9,10} になり、7 が中心になるように終了します。

同様に、ユーザーが左にスクロールする場合、右端から 9 を削除し、左端に 2 を追加して、アダプター配列が中央に 5 を持つ {2,3,4,5,6,7,8} になるようにします。

アイテムの保存に LinkedList を使用しています

どうすればこれを達成できますか。助けてください。

4

1 に答える 1

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;
}
于 2012-05-24T15:37:07.067 に答える