gpt4 book ai didi

android - 如何在没有用户交互的情况下停止重复 android ViewFlipper 幻灯片放映?

转载 作者:搜寻专家 更新时间:2023-11-01 08:41:27 25 4
gpt4 key购买 nike

我将 ViewFlipper 设置为每 5 秒自动翻转一次。省略一些细节,它看起来像这样并且工作正常:

for (String photo : imgPaths) {
ImageView image = new ImageView(getApplicationContext());
Bitmap bmp = Utility.decodeFile(new File(photo));
image.setImageBitmap(bmp);
imageFlipper.addView(image);
}

imageFlipper.setFlipInterval(5000); // 5s intervals
imageFlipper.startFlipping();

但是,我必须在查看最后一张图片后停止此幻灯片,并且我没有使用任何用户操作来停止或开始幻灯片。一切都应该自动工作。我该怎么做?谢谢

最佳答案

如果在 View 切换时应用动画(out 或 in animation),则可以为动画设置监听器。监听动画结束事件,然后检查脚蹼是否在最后一个 View 上。如果是,则停止鳍状肢进一步翻转,这将避免鳍状肢再次开始幻灯片放映。

imageFlipper.setFlipInterval(5000); // 5s intervals 

imageFlipper.setInAnimation(this, android.R.anim.slide_in_left); //use either the default slide animation in sdk or create your own ones
imageFlipper.setOutAnimation(this, android.R.anim.slide_out_right);

imageFlipper.getInAnimation().setAnimationListener(new Animation.AnimationListener() {

public void onAnimationStart(Animation animation) {}
public void onAnimationRepeat(Animation animation) {}
public void onAnimationEnd(Animation animation) {

int displayedChild = imageFlipper.getDisplayedChild();
int childCount = imageFlipper.getChildCount();

if (displayedChild == childCount - 1) {
imageFlipper.stopFlipping();
}
}
});

imageFlipper.startFlipping();

关于android - 如何在没有用户交互的情况下停止重复 android ViewFlipper 幻灯片放映?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32176482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com