我正在尝试使用ViewSwitcher
充当图像向导。
我的意思是会有下一个和上一个按钮来更改ViewSwitcher
中的图像而不是图库。我从android示例应用程序的API Demo
中获取了引用。
因为他们使用了ViewSwitcher
和Gallery
,但我必须使用Next
和Prev
按钮
代替。但我不知道该怎么做。
在示例应用程序中,他们使用了
Gallery g = (Gallery) findViewById(R.id.gallery);
g.setAdapter(new ImageAdapter(this));
g.setOnItemSelectedListener(this);
ImageAdapter
继续在ImageView中添加新图像,ImageView本身驻留在ViewSwitcher中。那么我怎样才能对下一个和上一个按钮做同样的事情呢?
答案 0 :(得分:1)
如果您使用ImageSwitcher
,这是一件非常简单的事情。您必须将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
(因为我们从数组中的第一个图像开始)。