关于如何定位,已经有很多讨论了。MediaController
大多数答案都是使用setAnchorView
-方法。乍一看这个解决方案似乎有效,但就我而言却无效。
根据这个Post setAnchorView
仅作为初始定位的参考MediaController
,但实际上创建了一个新的浮动Window
在上面。
所以我想要的是一个MediaController
那是really与父母绑定View
(例如视频视图)。
例如,如果您有一个LinearLayout
在一个ScrollView
你必须向下滚动到你的VideoView
哪里的MediaController
附于,MediaController
真的应该附加到这个VideoView
所以这样MediaController
与 一起滚动VideoView
.
讨论了出现此问题的另一个用例here,其中MediaController
在一个内使用ViewPager
.
那么如何实现这样的行为MediaController
?
我最终做了一个肮脏的黑客......我只是手动将视图附加到我的videoView
实现想要的行为:
public void onPrepared(MediaPlayer mp) {
MediaController mc = new MediaController(videoView.getContext(), false);
// set correct height
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) videoView.getLayoutParams();
params.height = mp.getVideoHeight();
videoView.setLayoutParams(params);
videoView.setMediaController(mc);
pBar.setVisibility(View.GONE);
mc.show(0);
FrameLayout f = (FrameLayout) mc.getParent();
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_BOTTOM, videoView.getId());
((LinearLayout) f.getParent()).removeView(f);
((RelativeLayout) videoView.getParent()).addView(f, lp);
mc.setAnchorView(videoView);
}
这个解决方案的问题是,设置anchorView没有任何效果,因此点击VideoView
不隐藏/显示MediaController
正如它应该的那样。
肯定有更好的解决方案,希望有人能给我提示!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)