如何使XML布局与所有resoultion兼容?

时间:2016-08-11 07:32:13

标签: android xml android-layout android-studio

enter image description here

它的确定720x1280,但在768x1280运行时不适合屏幕,所以我尝试各种方式,如制作布局 - 正常布局 - 小布局 - 大和...但是,例如,我想让这个屏幕正常布局所以问题是,如果我在720x1280或768x1280上创建此XML基础?或另一个屏幕 子集布局 - 正常或另一个dpi子集布局 - 正常我该怎么办?如果我在768x1280上做这个基础时在720x1280运行应用程序没有修复,如果在768x1280运行应用程序时修复此基础720x1280

所以这是我的代码:

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


    <RelativeLayout
        android:layout_alignParentBottom="true"
        android:id="@+id/rel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <ImageButton
            android:id="@+id/back"
            android:background="@drawable/lastb"
            android:layout_width="45dp"
            android:layout_height="138dp"  />
        <ImageButton
            android:id="@+id/b1"
            android:background="@drawable/qwe"
            android:layout_marginLeft="2dp"
            android:layout_toRightOf="@+id/back"
            android:layout_width="65dp"
            android:layout_height="68dp" />
        <ImageButton
            android:id="@+id/b2"
            android:background="@drawable/qwe"
            android:layout_marginTop="2dp"
            android:layout_toRightOf="@id/back"
            android:layout_marginLeft="2dp"
            android:layout_below="@+id/b1"
            android:layout_width="65dp"
            android:layout_height="68dp"/>
        <ImageButton
            android:id="@+id/b3"
            android:background="@drawable/qwe"
            android:layout_marginLeft="2dp"
            android:layout_toRightOf="@+id/b1"
            android:layout_width="65dp"
            android:layout_height="68dp" />
        <ImageButton
            android:id="@+id/b4"
            android:background="@drawable/qwe"
            android:layout_toRightOf="@id/b3"
            android:layout_marginLeft="2dp"
            android:layout_width="65dp"
            android:layout_height="68dp"/>
        <ImageButton
            android:id="@+id/bb"
            android:background="@drawable/df"
            android:layout_marginTop="2dp"
            android:layout_marginLeft="2dp"
            android:layout_toRightOf="@id/b2"
            android:layout_below="@id/b3"
            android:layout_width="132dp"
            android:layout_height="68dp" />
        <ImageButton
            android:id="@+id/b5"
            android:background="@drawable/qwe"
            android:layout_toRightOf="@id/b4"
            android:layout_marginLeft="2dp"
            android:layout_width="65dp"
            android:layout_height="68dp" />
        <ImageButton
            android:id="@+id/b6"
            android:background="@drawable/qwe"
            android:layout_marginTop="2dp"
            android:layout_toRightOf="@id/bb"
            android:layout_marginLeft="2dp"
            android:layout_below="@+id/b4"
            android:layout_width="65dp"
            android:layout_height="68dp"/>
        <ImageButton
            android:id="@+id/forward"
            android:background="@drawable/lastf"
            android:layout_marginLeft="2dp"
            android:layout_toRightOf="@id/b6"
            android:layout_width="45dp"
            android:layout_height="138dp" />
    </RelativeLayout>

</RelativeLayout>

4 个答案:

答案 0 :(得分:0)

在主要相对布局中添加

android:fitsSystemWindows="true"

答案 1 :(得分:0)

在布局

中使用此功能
android:fitsSystemWindows="true"

答案 2 :(得分:0)

因此,适合所有屏幕分辨率的最佳方法是使用 match_parent 进行布局。在你的情况下,你为RelativeLayout设置 wrap_content ,你放置具有特定宽度的视图(android:layout_width =“65dp”),布局将环绕它,所以如果你有大屏幕,它将有空间。

这是一个如何使用4个按钮水平填充屏幕的示例:

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:text="Button"
        android:layout_weight="0.25"
        android:layout_margin="5dp"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button"
        android:layout_weight="0.25"
        android:layout_margin="5dp"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button"
        android:layout_weight="0.25"
        android:layout_margin="5dp"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button"
        android:layout_weight="0.25"
        android:layout_margin="5dp"/>

</LinearLayout>

将LinearLayout宽度设置为match_parent,您将适合所有屏幕尺寸和设置按钮 layout_weight =“0.25 您正在按钮占据屏幕的25%。粘贴此代码以便您可以获取它它是如何工作的。

答案 3 :(得分: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">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="8">

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="3"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2">

        <ImageButton
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/back" />

    </LinearLayout>

    <!--Center-->
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="6"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <ImageButton
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/qwe" />

            <ImageButton
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/qwe" />

            <ImageButton
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/qwe" />

            <ImageButton
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/qwe" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1">

            <ImageButton
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/qwe" />

            <ImageButton
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="2"
                android:background="@drawable/df" />

            <ImageButton
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/qwe" />

        </LinearLayout>

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2">

        <ImageButton
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/back" />

    </LinearLayout>

</LinearLayout>

</LinearLayout>