无论屏幕设备分辨率如何,都将按钮控件设置为适合屏幕
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 );
为所有按钮设置高度 属性。
我在这里尝试为 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"
orandroid: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 );
为所有按钮设置高度 属性。