问题完全说明了这一点,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());
从这里使用下面的代码解决了它。由于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);
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句