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

时间:2016-05-26 07:27:28

标签: android android-layout xamarin xamarin.android android-button

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

enter image description here 我已经完成了这段代码

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>

表单图像更清晰我希望在任何设备上的空白区域显示按钮,这样用户就不会感到不舒服。使用该应用程序。

或者请建议我可以在屏幕上加载UI并且无论设备分辨率如何都能动态显示。

先谢谢

4 个答案:

答案 0 :(得分:2)

  

添加android:layout_margin="10dp" 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" />
  

对所有Buttons执行相同操作。

答案 1 :(得分:1)

更改

android:fillViewport="false"

 android:fillViewport="true"
滚动浏览中的

。您不允许scrollView填充设备屏幕,这就是您看到空白的原因。

scrollview

答案 2 :(得分:1)

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

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

</LinearLayout>

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

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

在滚动视图中添加权重。我认为8会好的。同时将高度设置为0dp

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

我认为应该这样做。

答案 3 :(得分:1)

您可以根据不同的屏幕分辨率从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 );

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