我现在正在实现 View 寻呼机,我想在特定的时间段内连续一张一张地自动更改图像,可能是 5 毫秒一次。
我还必须手动允许用户滑动图像(它工作正常)
但是图像不会自动改变,当它到达最后一张图像时它应该自动来到第一张图像
final Handler handler = new Handler();
final Runnable Update = new Runnable() {
public void run() {
if (currentPage == strImages.length-1) {
currentPage = 0;
}
intro_images.setCurrentItem(currentPage++, true);
}
};
timer = new Timer(); // This will create a new Thread
timer .schedule(new TimerTask() { // task to be scheduled
@Override
public void run() {
handler.post(Update);
}
}, 500, 3000);
我使用了上面的代码,但它不能正常工作
最佳答案
试试这样将 addOnPageChangeListener
添加到您的 viewPager
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (position == strImages.length-1) {
currentPage = 0;
}
intro_images.setCurrentItem(currentPage++, true);
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
或者对于自动更改页面尝试创建这样的时间任务
Timer timer;
timer = new Timer();
timer.scheduleAtFixedRate(new RemindTask(), 0, 3000); // delay*/
private class RemindTask extends TimerTask {
int current = viewPager.getCurrentItem();
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
if (current < strImages.size()) {
viewPager.setCurrentItem(current);
current += 1;
} else {
current = 0;
viewPager.setCurrentItem(current);
}
}
});
}
}
关于android - 如何在 View 寻呼机中自动更改图像,当它到达最后一张图像时,它应该自动进入第一张图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45518197/