我正在开发一个应用程序,我将视频均匀地堆叠在图像上.您可以在随附的照片中看到.为什么视频播放器控件默认为设备底部(如照片中所示)?如果可能的话,我想将它们移到视频上方.我在此屏幕上的布局是:
<?xml version="1.0" encoding="UTF-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/mobile_vforum_bg"
>
<VideoView
android:id="@+id/vidPlayer"
android:layout_width="320dip"
android:layout_height="240dip">
</VideoView>
<WebView
android:id="@+id/slideHolder"
android:layout_width="320dip"
android:layout_height="240dip"
android:layout_gravity="bottom">
</WebView>
<ListView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/slideList"
android:background="#000000">
</ListView>
</FrameLayout>
有人知道我是否可以将视频控件移到视频上方?
解决方法:
您要做的是确保为控件设置一个定位视图,并确保该定位视图不会占据整个屏幕.例如,这是一个示例布局(不完整,但很清楚):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/preview_video_container_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<VideoView
android:id="@+id/preview_video_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>
然后,在代码中设置媒体控制器时,将执行以下操作:
mPreview = (VideoView) findViewById(R.id.preview_video_view);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(mPreview);
关键是内部线性布局具有环绕高度的环绕内容,因此不会占据整个屏幕.最终将在视频下方显示控件.如果您想做一些更时髦的事情,例如将控件放在视频本身的顶部(然后出现/消失),那么我相信您将必须创建自己的控件并在视频视图中进行布局.