0

我在尝试隐藏和显示 VideoView 顶部的按钮时遇到问题。为简单起见,我有一个看起来像这样的 xml 文件,真正的文件只有更多按钮。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

<VideoView
    android:id="@+id/videoEnter"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:scaleType="fitXY" />

<Button
    android:id="@+id/play"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Play" />

</RelativeLayout>

基本上,当我播放视频时,我将按钮设置为View.INVISIBLE,当视频播放完毕时,onCompletion我将按钮设置为View.Visible. 问题是按钮是可点击的,但它在 VideoView 后面并且不可见。我已经能够在 FrameLayout 中完成这项工作,但是我需要拉伸视频视图以适应我只能在 RelativeLayout 中工作的屏幕。有没有办法在RelativeLayout中完成所有这些工作?

我也试过.bringToFront()没有成功。

在此先感谢您的帮助

4

1 回答 1

0

我认为这是因为您为 VideoView 使用了 fill_parent。此外,您已经使用以下所有内容为真:

android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"

因此,活动正在拉伸整个屏幕。做这样的事情:使用线性布局并为您的视图分配权重。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
<VideoView
    android:layout_weight="0.9"
    android:id="@+id/videoEnter"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
/>
<Button
    android:layout_weight="0.1"
    android:id="@+id/play"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Play" />
</LinearLayout>

我已经尝试过了,它在底部显示按钮,在屏幕其余部分显示 VideoView。

于 2013-02-24T20:41:00.300 回答