不同图像的持续时间不同

3

我使用了daimajia/AndroidImageSlider库。如何为不同的图片设置不同的持续时间?是否可以为图片设置不同的持续时间?例如,如果有两种类别的图片,A类别的持续时间将为15秒,B类别为5秒。

                  for (String name : url_maps.keySet()) {
                        customSliderView = null;
                        customSliderView = new CustomSliderView(getApplicationContext());
                        // initialize a SliderLayout
                        customSliderView
                                //.description(name)
                                .image(url_maps.get(name))
                                .setScaleType(BaseSliderView.ScaleType.CenterCrop);
                        //.setOnSliderClickListener(this);
                        mDemoSlider.addSlider(customSliderView);
                    }
                    mDemoSlider.setPresetTransformer(SliderLayout.Transformer.DepthPage);
                    mDemoSlider.setDuration(MY_DURATION);
                    mDemoSlider.startAutoCycle(MY_DURATION, MY_DURATION, true);
1个回答

1

经过多次尝试和错误,我终于实现了我的目标。我不得不关闭自动循环,并在17秒后手动交换滑块,每3秒进行一次。如果有更好的解决方案,请告诉我。

for (String name : url_maps.keySet()) {
                            //textSliderView = null;
                            customSliderView = null;
                            //textSliderView = new TextSliderView(getApplicationContext());
                            customSliderView = new CustomSliderView(getApplicationContext());
                            // initialize a SliderLayout
                            customSliderView
                                    //.description(name)
                                    .image(url_maps.get(name))
                                    .setScaleType(BaseSliderView.ScaleType.CenterCrop);
                            //.setOnSliderClickListener(this);
                            mDemoSlider.addSlider(customSliderView);
                        }

                        mDemoSlider.setPresetTransformer(SliderLayout.Transformer.DepthPage);
                        //mDemoSlider.setDuration(MY_DURATION);
                        mDemoSlider.destroyDrawingCache();
                        mDemoSlider.setDrawingCacheEnabled(false);
                        mDemoSlider.clearDisappearingChildren();
                        mDemoSlider.stopAutoCycle();
                        //mDemoSlider.startAutoCycle(MY_DURATION, MY_DURATION, true);
                        //mDemoSlider.addOnPageChangeListener(this);

然后有两个用于交换的函数

private void initViewPager() {
    //sendRequest();
    //callAsynchronousTask();
    callTimer1();
}
private void callTimer1() {
    // Auto start of viewpager
    final Runnable Update = new Runnable() {
        public void run() {
            //viewPager.setCurrentItem(1, true);
            //mDemoSlider.moveNextPosition(true);
            mDemoSlider.setCurrentPosition(0, true);
        }
    };

    final Timer swipeTimer = new Timer();

    swipeTimer.schedule(new TimerTask() {
        @Override
        public void run() {
            handler.post(Update);
            swipeTimer.cancel();
            callTimer2();
        }
    }, 3500, 17000);
}

private void callTimer2() {

    final Runnable Update = new Runnable() {
        public void run() {
            //viewPager.setCurrentItem(0, true);
            mDemoSlider.setCurrentPosition(1, true);
            //mDemoSlider.moveNextPosition(true);
        }
    };
    final Timer swipeTimer2 = new Timer();
    swipeTimer2.schedule(new TimerTask() {
        @Override
        public void run() {
            handler.post(Update);
            swipeTimer2.cancel();
            callTimer1();
        }
    }, 17000, 3500);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接