0

我正在尝试ViewSwitcher像一个图像向导一样行事。

我的意思是会有下一个和上一个按钮来更改图像ViewSwitcher而不是画廊。我参考API Demo了 android 示例应用程序。

因为他们已经使用了ViewSwitcherGallery但我必须使用NextPrev按钮。但我不知道该怎么做。

与他们使用的示例应用程序一样

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

ImageAdapterImageView 中不断添加新图像的位置,该图像本身位于 ViewSwitcher 中。那么我怎样才能对下一个和上一个按钮做同样的事情呢?

示例应用程序屏幕

4

1 回答 1

1

如果您使用 anImageSwitcher这是一件非常简单的事情。你必须Gallery用你的两个替换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

两者buttons将有两个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 回答