我想为Android应用创建以下视图。 视图应该是相对的,当它在不同的屏幕尺寸上打开时,视频视图应该在图像的框架内
这是目前为止的xml文件:(
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/updatemsg"
android:gravity="center"
android:keepScreenOn="true"
android:orientation="vertical"
android:padding="10dp" >
<VideoView
android:id="@+id/upgradevideo"
android:layout_width="757dp"
android:layout_height="426dp"
android:layout_marginBottom="0dp"
android:layout_marginTop="55dp" />
<Button
android:id="@+id/upgrade_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OK" />
</LinearLayout>
答案 0 :(得分:1)
我不会使用FrameLayout
,它的子节点没有关系属性(这里我们希望将视图转换为另一个)。
你接近(LinearLayout
有背景)对我来说似乎是正确的。您所需要做的就是为您的布局找到合适的衬垫。我会删除layout_margin
属性,只需在父版块上使用android:paddingTop
,android:paddingStart
,android:paddingEnd
,android:paddingBottom
。
至于与不同设备的一致性,您可以设置不同的维度,例如:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/updatemsg"
android:paddingTop="@dimen/padding_top" >
然后,您只需在不同的文件夹中定义dimen
资源,因此将根据屏幕大小/方向使用不同的值呈现相同的属性。看看here。
实施例: 的值/ dimens.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="padding_top">20dp</dimen>
</resources>
实施例: 的值-XLARGE / dimens.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="padding_top">40dp</dimen>
<!-- this value will be used for very large devices -->
</resources>
我还建议您不要对layout_width
的{{1}}和layout_heigth
属性进行硬编码。尝试拥有动态值。
答案 1 :(得分:0)
您可以使用FrameLayout
。
<FrameLayout
android:id="@+id/upgradevideo"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
//make childrens here,they will appear one above the other
</FrameLayout
答案 2 :(得分:0)
如果要在xml文件中查看另一个视图,则必须使用FrameLayout。 使用gravity属性使布局支持android中的所有类型的屏幕。 不要使用像素代替宽度和高度。始终使用fill_parent或wrap_content。
请参阅下面的代码以了解FrameLayout。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:background="#00000c"
android:padding="10dp"
android:text="Frame Layout Sample"
android:textColor="#fafafa"
android:textSize="22sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"
android:layout_marginLeft="5dp"
android:background="#AA000000"
android:padding="10dp"
android:text="28/May/2015"
android:textColor="#FFFFFF"
android:textSize="18sp" />