0

私はViewSwitcher画像ウィザードのように振る舞うために使用しようとしています。

つまりViewSwitcher、ギャラリーではなく、画像を変更するための次のボタンと前のボタンがあります。API Demoアンドロイドサンプルアプリから参考にしています。

彼らが使用したという点でViewSwitcherGalleryしかし私は代わりにボタンを使用する必要がNextありPrevます。しかし、私はそれを行う方法がわかりません。

サンプルアプリケーションのように、彼らは使用しました

Gallery g = (Gallery) findViewById(R.id.gallery);
g.setAdapter(new ImageAdapter(this));
g.setOnItemSelectedListener(this);

ImageAdapterそれ自体がViewSwitcherにあるImageViewに新しい画像を追加し続ける場所。では、次と前のボタンで同じことを行うにはどうすればよいですか?

サンプルアプリ画面

4

1 に答える 1

1

を使用する場合、ImageSwitcherこれは非常に簡単なことです。Galleryを 2 つに置き換えて、Buttonsそれらを にリンクする必要がありImageSwitcherます。

private int[] mImageIds= //.. the ids of the images to use
private int mCurrentPosition = 0; // an int to monitor the current image's position
private Button mPrevious, mNext; // our two buttons

この 2つにはbuttons2 つのonClick コールバックがあります。

public void goPrevious(View v) {
    mCurrentPosition -= 1;
    mViewSwitcher.setImageResource(mImageIds[mCurrentPosition]);
    // this is required to kep the Buttons in a valid state
    // so you don't pass the image array ids boundaries 
    if ((mCurrentPosition - 1) < 0) {
        mPrevious.setEnabled(false);
    }
    if (mCurrentPosition + 1 < mImageIds.length) {
        mNext.setEnabled(true);
    }
}

public void goNext(View v) {
    mCurrentPosition += 1;
    mViewSwitcher.setImageResource(mImageIds[mCurrentPosition]);
    // this is required to kep the Buttons in a valid state
    // so you don't pass the image array ids boundaries 
    if ((mCurrentPosition + 1) >= mImageIds.length) {
        mNext.setEnabled(false);
    }
    if (mCurrentPosition - 1 >= 0) {
        mPrevious.setEnabled(true);
    }
}

Buttonメソッドの前のものを無効にすることを忘れないでくださいonCreate(配列の最初の画像から開始するため)。

于 2012-09-14T13:19:18.327 に答える