在Video View android

时间:2015-07-06 19:03:15

标签: android animation

我已成功在我的布局上添加了VideoView,我也可以播放它。当点击某个按钮时,我在视频视图顶部有一个很好的动画徽标。同时我想淡出视频。但是在它上面运行alpha动画会立即将其变为黑色。我发现videoview的行为与普通视图不同,因为它是表面视图。我尝试将它放在框架布局中,但它不起作用。动画看起来像这样:

AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f, 0.0f);
alphaAnimation.setDuration(1000);
alphaAnimation.setFillAfter(true);

videoView.suspend(); //pause video
videoView.startAnimation(alphaAnimation);

那我怎么淡出视频?

3 个答案:

答案 0 :(得分:4)

您无法为VideoView制作动画。为什么不尝试使用TextureView,其行为与普通View相同。您可以在TextureView from this answer in SO中找到如何播放视频。

答案 1 :(得分:2)

您可以在VideoView上进行淡出:

select *
from
(select TOP 100*
from(select distinct codenumber
from srv.table01)x) as a
left Join srv.table01 as b
on a.codenumber=b.codenumber

答案 2 :(得分:1)

如果您使用videoView,则不适合不适合运行aplha动画。为此,您可以使用Exoplayer。在Exoplayer中,将xml fle中的surface_type属性用作 texture_view 并运行动画。

例如:

 <com.google.android.exoplayer2.ui.PlayerView
            android:id="@+id/videoView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:surface_type="texture_view"
            android:animateLayoutChanges="true"/>

还有您的Kotlin代码

val shortAnimationDuration = 1000
            videoView.apply {
                alpha = 0f
                animate()
                    .alpha(1f)
                    .setDuration(shortAnimationDuration.toLong())
                    .setListener(object :AnimatorListenerAdapter(){
                        override fun onAnimationEnd(animation: Animator?) {
                           //You can add what you want to do after completing animation
                        }
                    })
            }

这是淡入动画。如果要淡出,只需交换Alpha值即可。