android - MediaController 定位 - 绑定(bind)到 VideoView

标签 android android-layout android-view android-videoview mediacontroller

关于如何定位 MediaController 的讨论很多,大多数答案都是使用 setAnchorView 方法。乍一看,这个解决方案似乎可行,但在我的例子中却行不通。

根据这个Post setAnchorView 仅作为 MediaController 初始定位的引用,但实际上在其上创建了一个新的 float Window

所以我想要的是 MediaController,它真正绑定(bind)到父 View(例如 VideoView)。

例如,如果您在 ScrollView 中有一个 LinearLayout,您必须向下滚动到您的 VideoView,其中 MediaController 附加到,MediaController 应该真正附加到此 VideoView,以便 MediaControllerVideoView< 一起滚动.

讨论了出现此问题的另一个用例 here ,其中 MediaControllerViewPager 中使用。

那么如何为 MediaController 实现这样的行为呢?

最佳答案

我最后做了一个肮脏的 hack...我只是手动将 View 附加到我的 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应该。

肯定有更好的解决方案,希望有人能给我提示!

关于android - MediaController 定位 - 绑定(bind)到 VideoView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22637413/

相关文章:

android - 如何为多个屏幕分辨率定义可绘制文件夹名称(Nexus 10 和 Galaxy Tab 10 之间的冲突)?

android - 在android中的EditText内可点击可绘制

java - Android:在 ScrollView 中膨胀线性 View

android - (Android View )海拔是绝对的还是相对于父级的?

android - Google 登录不适用于受信任的 Web Activity (TWA) 发行版 apk,但适用于调试 apk

Android实时黑白阈值图像

android - 构建 gradle 系统应用作为 AOSP 构建的一部分

android - 我如何使用 "android:layoutDirection"?

android - Google Glass GDK View 错误,悲伤的云

android - 如何在没有填充的情况下在android中获得准确的命中矩形?