当前位置: 首页 > 知识库问答 >
问题:

Android循环播放动画

慕容渊
2023-03-14

我试图在一个循环中的两个ImageViews上播放动画,其中ImageViews的图像在每个循环中都发生变化,但正如预期的那样,用户只看到最后一个图像和动画。

在其他文章中,我尝试了thread.sleep()recreate()方法,但都没有成功。

该程序的目的是让用户选择9张照片,然后根据照片的RGB构图与计算机图像进行岩石-纸-剪刀式的格斗。

程序从两个数组列表中获取ImageViews的照片,AImages是drawable文件夹中文件名字符串的数组列表,以及BitMapListBitMaps的数组列表,用户从自己的图库中选择的照片填充这些照片。

该循环通过设置ImageViews

for(int x = 0; x < 9; x++) {

//Gets a bitmap from our PhotoActivity ArrayList and sets the player image view to be that bitmap
imageViewPlayerPhoto.setImageBitmap(PhotoActivity.bitmapList.get(x));

 
//Gets the resource ID of the computers photo
int computerImageResourceID = getResources().getIdentifier(aiImages.get(x), "drawable", 
            getApplicationContext().getApplicationInfo().packageName);

//Sets the computers image view to be the bitmap of the chosen computer photo
imageViewComputerPhoto.setImageBitmap(getBitmapFromDrawable(computerImageResourceID));

然后用选择的照片做一些计算,

然后尝试在循环结束时播放动画,

imageViewPlayerPhoto.startAnimation(AnimationUtils.loadAnimation(this,R.anim.slide));

imageViewComputerPhoto.startAnimation(AnimationUtils.loadAnimation(this,R.anim.slide));

} //loop ends

其中slide是一个简单的xml动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/decelerate_interpolator">

    <translate android:fromXDelta="-500%" android:toXDelta="0%"
        android:duration="700"/>
</set>

动画和ImageViews的设置在循环的最后一次迭代中工作得很好,但我只是需要帮助在每次循环迭代中显示它们,而不仅仅是在最后

共有1个答案

后焕
2023-03-14

您不能在每个循环拉伸上多次动画,而是使用侦听器。当动画在OnAnimationEnd()中结束时,立即重新启动。例如:

   Animation animation =AnimationUtils.loadAnimation(this,R.anim.slide);
        imageViewPlayerPhoto.startAnimation(animation);
        animation.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {
                // here you can start the animation after it finished
            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });
 类似资料:
  • 本文向大家介绍Android 使用ViewPager实现图片左右循环滑动自动播放,包括了Android 使用ViewPager实现图片左右循环滑动自动播放的使用技巧和注意事项,需要的朋友参考一下 ViewPager这个小demo实现的是可以左右循环滑动图片,下面带索引,滑到最后一页在往右滑动就要第一页,第一页往左滑动就到最后一页,先上效果图,用美女图片是我一贯的作风,呵呵 1. 首先看一些layo

  • 问题内容: 以下样式只是如何在CSS3中设置过渡的示例。 有没有纯粹的CSS技巧可以使此循环播放? 问题答案: CSS仅从一组样式过渡到另一组样式。您正在寻找的是CSS动画。 您需要定义动画关键帧并将其应用于元素: 请查看上面的链接,以了解如何根据自己的喜好对其进行自定义,然后您必须添加浏览器前缀。

  • 提前感谢!

  • 问题内容: 在AVFoundation中是否有相对简单的循环视频的方法? 我已经如下创建了我的AVPlayer和AVPlayerLayer: 然后播放以下视频: 视频播放正常,但在最后停止。使用MPMoviePlayerController,您所要做的就是将其属性设置为正确的值。在AVPlayer上似乎没有类似的属性。似乎也没有回调可以告诉我电影何时结束,因此我可以寻找开始并再次播放。 我没有使用

  • 本文向大家介绍Android 使用ViewPager自动滚动循环轮播效果,包括了Android 使用ViewPager自动滚动循环轮播效果的使用技巧和注意事项,需要的朋友参考一下 对Android 利用ViewPager实现图片可以左右循环滑动效果,感兴趣的朋友可以直接点击查看内容详情。 主要介绍如何实现ViewPager自动播放,循环滚动的效果及使用。顺便解决ViewPager嵌套(ViewPa

  • 我有一个ImageViews数组,ImageViews将彼此缩放。现在我想在onAnimationStart动画循环播放短丁音(持续时间不到一分钟)。 下面是我如何定义soundPool和load声音的。 我该怎么做???还是有什么问题??? PS1: