我创建了一个广告控件,它由ViewSwitcher ....
组成在该控件中我有ImageView和TextView,因为广告是文本或图像..
现在我必须给advetisements动画..
我试过以下
动画inAnimation = AnimationUtils.loadAnimation(this,android.R.anim.slide_in_left); inAnimation.setDuration(1500);
动画outAnimation = AnimationUtils.loadAnimation(这个, android.R.anim.slide_out_right); outAnimation.setDuration(1500);
我将其设置为切换台
ViewSwitcher切换器;
switcher.setInAnimation(inAnimation);
switcher.setOutAnimation(outAnimation);
但它不起作用..
请给我任何其他选择..或者如果使用上面的代码是错误的,那么如何使用它?
答案 0 :(得分:30)
尝试将xml中的动画设置为
<ViewSwitcher
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:inAnimation="@android:anim/slide_in_left"
android:outAnimation="@android:anim/slide_out_right" >
答案 1 :(得分:8)
除此之外:
照顾switcher.showNext();或者switcher.showPrevious();
如果您将动画设置到切换台,则两个动作都会生成相同动画。
答案 2 :(得分:2)
什么都没发生或者你有错误?你的意思是行不通的?
您是否使用switcher.showNext();
或switcher.showPrevious();
希望它会有所帮助..干杯;)
答案 3 :(得分:0)
“switcher.showNext();”从最后一个布局和“switcher.showPrevious();”从第一个布局给出错误。它必须类似于stack.flow中的stackoverflow和stackunderflow情况。在调用“showNext()”之前,检查它不是您当前所在的最后一个布局,并且在调用“showPrevious()时您不在第一个布局中”。我遇到了这个简单的错误。 很抱歉发布这个帖子,我(新手)还没有授权对帖子发表评论
答案 4 :(得分:0)
我正在提出问题中提到的替代方案。使用此方法,您将获得与ViewPager相同的动画。
您可以将displayChild设置为1,而不是showNext。
switcherView?.inAnimation = AnimationUtils.loadAnimation(baseActivity, R.anim.slide_in_right)
switcherView?.outAnimation = AnimationUtils.loadAnimation(baseActivity, R.anim.slide_out_left)
switcherView?.displayedChild = 1
您可以将displayChild设置为0,而不是showPrevious。
switcherView?.inAnimation = AnimationUtils.loadAnimation(baseActivity, R.anim.slide_in_left)
switcherView?.outAnimation = AnimationUtils.loadAnimation(baseActivity, R.anim.slide_out_right)
switcherView?.displayedChild = 0
动画文件: R.anim.slide_in_right:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_shortAnimTime"
android:fromXDelta="100%p"
android:toXDelta="0" />
</set>
R.anim.slide_out_left
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_shortAnimTime"
android:fromXDelta="0"
android:toXDelta="-100%p" />
</set>
R.anim.slide_in_left
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_shortAnimTime"
android:fromXDelta="-100%p"
android:toXDelta="0" />
</set>
R.anim.slide_out_right
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_shortAnimTime"
android:fromXDelta="0"
android:toXDelta="100%p" />
</set>
每次设置displayChildren时,都需要设置动画。如果您不想要动画,可以忽略它,仅此而已。祝您编码愉快!
PS:Kotlin代码