在Firebase数据库中,viewpager从第一张图像到最后一张图像

时间:2019-07-05 03:05:42

标签: android firebase android-viewpager

我创建了一个应用程序,将图像上传到Firebase,然后检索它们并将其显示在viewpager中。 我能够检索所有图像,但是我的问题是,在viewpager中,它们从第一个图像到最后一个图像的速度非常快(我看不到其他图像,我只能看到第一个然后是最后一个)。 / p>

我尝试添加一个循环,该循环只是不断增加一个数字以延迟应用程序的运行,但是没有成功。 接下来,我使用一个处理程序作为延迟器,但是没有用。 这是我的代码当前的样子-它在TimerTask类中,因为viewpager自动滑动,外观很简单

    public class MyTimerTask extends TimerTask{
        @Override
        public void run() {
           menuSliderActivity.this.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    int i=0;
                    while(i<sliderImg.size()){
                        while (viewPager.getCurrentItem()==i){
                            viewPager.setCurrentItem(i+1);
                            i++;
                        }
                    }
                    if (viewPager.getCurrentItem()==sliderImg.size()) {
                        viewPager.setCurrentItem(0);
                    }
                    }
            });
        }
    }

我也尝试过:

 public class MyTimerTask extends TimerTask{
        @Override
        public void run() {
           menuSliderActivity.this.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    int i=0;
                    while(i<=sliderImg.size()){
                        if(viewPager.getCurrentItem()==i){
                            viewPager.setCurrentItem(i+1);
                        } else if (viewPager.getCurrentItem()==sliderImg.size()) {
                            viewPager.setCurrentItem(0);
                         }
                        i++;
                    }
                    }
            });  
        }
    }

有人知道我在做什么错吗? (我是android studio和java的新手,所以我可能使用了-runnable(),run()等功能)错误。 谢谢。

2 个答案:

答案 0 :(得分:0)

您应该使用CountDownTimer在ViewPager中循环播放图像。因此它会根据需要缓慢循环。

new CountDownTimer(30000, 1000) {

 public void onTick(long millisUntilFinished) {
     mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
 }

 public void onFinish() {
     mTextField.setText("done!");
 }

}。start();

这是链接

https://developer.android.com/reference/android/os/CountDownTimer

答案 1 :(得分:0)

您可以尝试使用Thread

DelayedTask.java

glm.cdk6 <- glm(TRG ~ CDK6, data = df, family = binomial(link = 'logit'))
final <- glm(TRG ~ CDK6 + CXCL8 + IL6 + ISG15 + PTGS2 , data = df, family = binomial(link = 'logit'))

rocs <- list()

library(pROC)
rocs[["CDK6"]] <- roc(df$TRG, predict(glm.cdk6))
rocs[["final"]] <- roc(df$TRG, predict(final))

ggroc(rocs)

在所有图像都下载完毕后使用此功能

class DelayedTask extends Thread {
        private Activity activity;
        private int count;
        private int sleepDelay;
        private int totalDelay = 5000;

        public DelayedTask(Activity activity, int count) {
            this.activity = activity;
            this.count = count;
            this.sleepDelay = totalDelay / count;
        }


        @Override
        public void run() {
            for (int i = 0; i < count; i++) {
                try {
                    final int j = i;
                    activity.runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            viewPager.setCurrentItem(j);
                        }
                    });
                    Thread.sleep(sleepDelay);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }