现在我找到了一些在viewpager上自动运行图像的解决方案,但我不知道我们是如何制作的。
我读了很多关于计时器,runnable和句柄的帖子。谁可以猜出一些解决方案?
我的代码的Github链接如下, https://github.com/QuangTo/DemoSimple/blob/qtv/app/src/main/java/com/example/qtv/myapplication/view/ThreeFragment.java
答案 0 :(得分:1)
我已经使用Timer任务和OnPageChangeListener实现了这个,以获取当前页面选择的内容。如果他们是更好的解决方案[也给我更新!]。 它对我来说很好。
你可以使用TimerTask。
查看此代码:
/*Iterate the view pager after certain interval*/
class RemindTask extends TimerTask {
int nextPage = 0;
int noOfBanners;
RemindTask(int noOfBanners) {
this.noOfBanners = noOfBanners;
}
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
calledByTimer = true;
page = listener.getCurrentPage();
nextPage = page + 1;
if (firstTime) {
nextPage = page;
firstTime = false;
}
if (page > noOfBanners) timer.cancel();
else if (page == imageUrls.length - 1) pager.setCurrentItem(0);
else pager.setCurrentItem(nextPage);
}
});
}
}
public void pageSwitcher(int seconds, int length) {
swipeAtInterval = new RemindTask(length);
timer = new Timer();
timer.scheduleAtFixedRate(swipeAtInterval, 0, seconds * 1000);
}