如何调整所有 android 设备的屏幕尺寸

How to adjust screen size for all android devices

我似乎无法找到使照片适合我的主页屏幕的方法,我尝试了很多不同的方法,但都没有成功。我有一个图像,可以推动其下方的布局并挤压屏幕上的按钮。有什么办法可以自动调整不同屏幕的高度吗?我只需要高度,因为宽度应该是 match_parent。下面是 xml 文件。

<?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:background="@color/white"
    android:orientation="vertical" 
   >

    <RelativeLayout
        android:id="@+id/headerLayout"
        android:layout_width="match_parent"
        android:layout_height="?android:attr/actionBarSize"
        android:background="@drawable/nav_bar_homepage" >

        <TextView
            android:id="@+id/pageTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="WELCOME!" />

        <ImageView
            android:id="@+id/hiddenIcDrawer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_marginTop="10dp"
            android:src="@drawable/nav_icon"
            android:visibility="invisible" />
    </RelativeLayout>

    <ImageView
        android:id="@+id/horLine"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/headerLayout"
        android:scaleType="center"
        android:src="@drawable/line_big_white" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:scaleType="fitStart" >

        <ImageView
            android:id="@+id/image_homepage_id"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_gravity="center_horizontal"
            android:src="@drawable/image_homepage"
             />
    </RelativeLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true"
        android:layout_gravity="center"
        android:layout_margin="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="@drawable/field_red_homepage"
        android:orientation="vertical"
        android:scaleType="fitXY" >

        <ImageView
            android:id="@+id/logo_homep"
            android:layout_width="wrap_content"
            android:layout_height="80dp"
            android:layout_gravity="center"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="5dp"
            android:paddingBottom="10dp"
            android:scaleType="fitXY"
            android:src="@drawable/logo_homepage" />

        <ImageView
            android:id="@+id/redeembytton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_margin="10dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:background="@drawable/btn_redeemrewards"
            android:scaleType="fitXY" >
        </ImageView>

        <ImageView
            android:id="@+id/orderbutton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_margin="10dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="15dp"
            android:background="@drawable/btn_orderonline"
            android:scaleType="fitXY" >
        </ImageView>

        <ImageView
            android:id="@+id/rewardsButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_margin="10dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="15dp"
            android:background="@drawable/btn_earnrewards"
            android:scaleType="fitXY" >
        </ImageView>

        <ImageView
            android:id="@+id/referFriendButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_margin="10dp"
            android:layout_marginBottom="5dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="15dp"
            android:background="@drawable/btn_referafriend"
            android:scaleType="fitXY" >
        </ImageView>
    </LinearLayout>

</LinearLayout>

试试这个

我认为你应该使用 android:layout-weight="1" 用于根据不同调整高度 devices.use 它在你的 <ImageLayout/>.

将 xml 代码封装到 ScrollView 中(如果您可以向下滚动以访问 ImageView 下的内容)。如果你不想向下滚动,最好使用 "weight" 属性。我给你一个想法如何在你的代码中实现它。

假设整个屏幕的高度为 1。您有一个图像和一个按钮可以放置在所有设备的屏幕上。所以将屏幕分成两部分... 0.8 用于 imageview 和 0.2 用于按钮。您可以使用下面的代码来获得此结果。

<?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="fill_parent"
        android:layout_height="0dp"  <!-- Important >
        android:orientation="vertical"
        android:layout_weight=".8" > <!-- 80% of your screen size>

        <!-- Your ImageView >

    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"  <!-- Important >
        android:orientation="vertical"
        android:layout_weight=".2" > <!-- 20% of your screen size>

        <!-- Your Button >

     </LinearLayout>

</LinearLayout>