我正在尝试创建一个充当小型媒体播放器的叠加层 我创建了一个新的Activity,它使用一个主题,使其背景透明(深色透明)。
但是在布局方面我遇到了问题 Overlay目前看起来像这样:
我试图将媒体播放器盒(白色方块)垂直居中并(垂直)尽可能小。 我目前正试图通过在LinearLayout中使用两个空白视图来包围盒子的布局来实现这一点。
当前代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#CCFFFFFF"
android:id="@+id/overlay_layout" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/overlay_firstrow">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/overlay_playbutton"
android:src="@android:drawable/ic_media_play"
android:background="@null" />
<SeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/overlay_seekbar" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/overlay_firstrow"
android:layout_alignParentLeft="true"
android:id="@+id/overlay_text"
android:text="filename" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" />
</LinearLayout>
我知道当前代码不起作用(因为我为空白视图和LinearLayout分配了1的权重 - 因此中间框占据了屏幕高度的三分之一)
但我不知道如何正确地做到这一点。
我的目标是中间框尽可能小,而两个外部(空白)视图占用相同部分的剩余空间。
我希望有人可以帮助我实现这一目标。
提前致谢,
乌列尔
答案 0 :(得分:1)
问题是:
相对布局的权重不应为1,因为这使得它在3中的总高度相等
指定权重为1或更大时,请将高度(在本例中)设置为零
此外,您的文字设置为match_parent
,这是占据所有空间的人。
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#CCFFFFFF"
android:id="@+id/overlay_layout" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/overlay_firstrow">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/overlay_playbutton"
android:src="@android:drawable/ic_media_play"
android:background="@null" />
<SeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/overlay_seekbar" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/overlay_firstrow"
android:layout_alignParentLeft="true"
android:id="@+id/overlay_text"
android:text="filename" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
答案 1 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" />
<RelativeLayout
android:id="@+id/overlay_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#CCFFFFFF" >
<LinearLayout
android:id="@+id/overlay_firstrow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/overlay_playbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:src="@android:drawable/ic_media_play" />
<SeekBar
android:id="@+id/overlay_seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<TextView
android:id="@+id/overlay_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/overlay_firstrow"
android:text="filename" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" />
</LinearLayout>