无论屏幕设备分辨率如何,都将按钮控件设置为适合屏幕

Set the Button Control to fit on screen whatever the screen device resolution

我在这里尝试为 Android 应用程序创建一个 UI。我在顶部有几个按钮和徽标。在设计应用程序时,我发现按钮底部的空白 space 。我想使用 space 以便所有按钮在空白区域内正确对齐。按钮是从设备屏幕的标志到按钮的下方设计。

我已经完成了这段代码

Main.axml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#0B95BA"
    android:id="@+id/relativeLayout_container">
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="87.5dp"
        android:layout_alignParentTop="true"
        android:scaleType="fitXY"
        android:gravity="center"
        android:paddingLeft="10dp"
        android:src="@drawable/LogoHere"
        android:id="@+id/imgLogoHere"
        android:layout_marginBottom="0.0dp"
        android:layout_marginLeft="0.0dp" />
    <ScrollView
        android:id="@+id/scrollView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/bottom_container"
        android:layout_below="@id/imgLogoHere"
        android:fillViewport="false"
        android:orientation="vertical"
        android:padding="10dp">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_below="@id/scrollView">
            <Button
                android:id="@+id/btnVisit"
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:textSize="15sp"
                android:textColor="#FFFFFF"
                android:background="@drawable/ButtonStyle"
                android:text="Visit"
                android:layout_marginTop="5dp" />
            <Button
                android:text="Our"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:textSize="15sp"
                android:textColor="#FFFFFF"
                android:background="@drawable/ButtonStyle"
                android:id="@+id/btnOur"
                android:layout_marginTop="5dp" />
            <Button
                android:text="Ours"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:textSize="15sp"
                android:textColor="#FFFFFF"
                android:background="@drawable/ButtonStyle"
                android:id="@+id/btnOurs"
                android:layout_marginTop="5dp" />
            <Button
                android:text=" Contact Us"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:textSize="15sp"
                android:textColor="#FFFFFF"
                android:background="@drawable/ButtonStyle"
                android:id="@+id/btnContactUs"
                android:layout_marginTop="5dp" />
            <Button
                android:text="Test"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:id="@+id/btnTest"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:textSize="15sp"
                android:textColor="#FFFFFF"
                android:background="@drawable/ButtonStyle"
                android:layout_marginTop="5dp" />
            <Button
                android:id="@+id/btnView"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:textSize="15sp"
                android:textColor="#FFFFFF"
                android:background="@drawable/ButtonStyle"
                android:text="View"
                android:layout_marginTop="5dp" />
            <Button
                android:id="@+id/btnOrderEntry"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:textSize="15sp"
                android:textColor="#FFFFFF"
                android:background="@drawable/ButtonStyle"
                android:text="Order Entry"
                android:layout_marginTop="5dp" />
            <Button
                android:id="@+id/btnIntranet"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:textSize="15sp"
                android:textColor="#FFFFFF"
                android:background="@drawable/ButtonStyle"
                android:text="Intranet"
                android:layout_marginTop="5dp" />
        </LinearLayout>
    </ScrollView>
    <LinearLayout
        android:id="@+id/bottom_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal" />
</RelativeLayout>

Form Image it more clear 我想在任何设备上的空白区域显示一个按钮,这样用户就不会感到不舒服。在使用应用程序时。

或者请向我推荐任何可以加载 UI 在屏幕上并适合动态显示的东西,无论设备分辨率如何。

提前致谢

Add android:layout_margin="10dp" or android:layout_margin="12dp"

每个 Button.

参考这个。

<Button
        android:id="@+id/btnIntranet"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:layout_margin="10dp"
        android:background="@mipmap/ic_launcher"
        android:text="Intranet"
        android:textColor="#FFFFFF"
        android:textSize="15sp" />

Do the same for all the Buttons.

改变

android:fillViewport="false"

 android:fillViewport="true"

在您的 scrollView 中。您不允许 scrollView 填满您的设备屏幕,这就是您看到空白 space.

的原因

由于您的布局非常线性,最好使用 LinearLayout 作为根标签。

<LinearLayout
    android:orientation="vertical"
    other attributes here...>

</LinearLayout>

这意味着您可以删除所有与它的子项相关的布局相关内容,例如 layout_below

weight 添加到您的图像视图,并将其设置为 2 或任何其他看起来不错的数字。当然,将其高度设置为 0dp。

为滚动视图添加权重。我认为8会没事。同时将高度设置为 0dp

将线性布局(滚动视图中的那个!)的高度更改为 match_parent

我认为应该这样做。

您可以通过 java 代码针对不同的屏幕分辨率控制小部件布局属性。

DisplayMetrics displayMetrics = getActivity().getApplicationContext().getResources().getDisplayMetrics();

float screenHeight = displayMetrics.heightPixels / displayMetrics.density;
float requiredHeight = (screenHeight * 1) / 8;
final float scale = context.getResources().getDisplayMetrics().density;
int buttonHeight = (int) ((int) requiredHeight * scale + 0.5f);
buttonName.setHeight(buttonHeight );

为所有按钮设置高度 属性。