【问题标题】:MediaController doesn't respect view's animationMediaController 不尊重视图的动画
【发布时间】:2019-12-31 08:57:50
【问题描述】:

问题说明了一切,MediaController 不遵循应用于视图的动画。

我有一个 RelativeLayout,里面有一个 VideoView。 MediaController 锚定到此 VideoView。现在,在活动中,我将屏幕上的相对布局与一些动画(比如从右到左)结合起来。布局中的所有内容,如 textview、videoview 都可以完美地动画,但 MediaController 没有。它不是与 VideoView 一起从右到左出现,而是出现在屏幕之间,而 VideoView 仍然从右到左出现。

有没有办法强制将动画应用于 MediaController。

最小结构 ->

RelativeLayout
|
|--- TextView
|--- VideoView + MediaController
|--- Some other view

我在相对布局上应用动画。

rtlAnim = AnimationUtils.loadAnimation(activity, R.anim.right_to_left);
relativeLayout.startAnimation(rtlAnim);

right_to_left.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromXDelta="100%p"
        android:toXDelta="0"
        android:duration="500"/>
</set>

任何帮助将不胜感激。

PS:一旦准备好视频视图,我就会显示媒体控制器。

videoView.setOnPreparedListener(mediaPlayer -> mediaController.show());

【问题讨论】:

  • 摆脱设置。单个动画不需要它,并且集合并不总是按预期工作
  • 我删除了该集,但仍然没有解决问题。 @AHoneyBustard 您是否认为我应用于布局的动画将应用于 mediaController,因为我刚刚阅读了说 mediacontroller 位于应用程序上方的窗口中的 android 文档。那么,将相同动画应用于布局和媒体控制器的正确方法应该是什么。

标签: android android-animation android-videoview mediacontroller


【解决方案1】:

使用来自here 的以下代码解决了这个问题。由于 mediaController 将控件放置在浮动窗口中,因此我们必须手动将其添加到视图层次结构中。 :

videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mediaPlayer) {
                    videoView.setMediaController(ctrl);
                    ctrl.show();
                    FrameLayout frameLayout = (FrameLayout) ctrl.getParent();
                    ((ViewGroup) frameLayout.getParent()).removeView(frameLayout);
                    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
                    params.addRule(ALIGN_BOTTOM, videoView.getId());
                    ((RelativeLayout) videoView.getParent()).addView(frameLayout, params);
                }
            });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 2021-10-18
    • 2021-09-06
    • 1970-01-01
    相关资源
    最近更新 更多