具有固定大小的按钮显示不同

时间:2014-08-12 11:06:33

标签: android android-layout android-screen-support android-screen

我安静地使用Android安装了一个新的启动器,并且我试图让屏幕上方有4个按钮,我已经制作了3个不同的布局文件夹 layout_normal layout_large layout_xlarge 。正常情况下我将宽度和高度设置为120dp,对于xlarge,我们将它们设置为170dp,从而产生方形按钮。我已经在我的LG-E975上进行了测试,这很好,我已经在三星Galaxy tab 10.0上测试了它也很好但是我已经为其他设备创建了一些模拟器来测试它搞砸了,第四个按钮不在屏幕上,模拟器只显示3个按钮。

Emulator info:
    target: Android 4.2.2
    Skin: 320 x 480
    hw.lcd.density: 160

我检查时,我的LG和模拟器都被视为正常屏幕尺寸。 我知道有很多关于此事的文章,但如果有人以一种简单的方式向我解释,我会感激不尽。应该使用固定尺寸的按钮下降吗?

编辑:这是我的xml for layout-normal

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.kaw.mp2.MainActivity"
android:background="@color/background_all" >

<Button
    android:id="@+id/btn_main_aboutus"
    android:layout_width="120dp"
    android:layout_height="120dp"
    android:text="@string/btn_aboutus_text"
    android:layout_centerHorizontal="true"
    android:layout_alignParentRight="true"
    android:layout_marginTop="20dp"
    android:background="@color/background_btn"
    android:textColor="@color/text_color_btn" />

<Button
    android:id="@+id/btn_main_contactus"
    android:layout_width="120dp"
    android:layout_height="120dp"
    android:text="@string/btn_contactus_text"
    android:layout_below="@id/btn_main_aboutus"
    android:layout_marginTop="10dp"
    android:layout_alignParentRight="true" 
    android:background="@color/background_btn"
    android:textColor="@color/text_color_btn" />

<Button
    android:id="@+id/btn_main_products"
    android:layout_width="120dp"
    android:layout_height="120dp"
    android:text="@string/btn_products_text"
    android:layout_below="@id/btn_main_contactus"
    android:layout_marginTop="10dp"
    android:layout_alignParentRight="true" 
    android:background="@color/background_btn"
    android:textColor="@color/text_color_btn" />

<Button
    android:id="@+id/btn_main_news"
    android:layout_width="120dp"
    android:layout_height="120dp"
    android:text="@string/btn_news_text"
    android:layout_below="@id/btn_main_products"
    android:layout_marginTop="10dp"
    android:layout_alignParentRight="true" 
    android:background="@color/background_btn"
    android:textColor="@color/text_color_btn" />

</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

我假设你想要一个垂直行中的4个按钮(水平居中)。如果我理解正确,你应该使用LinearLayout,您可以使用它来指定不同组件的重量。把它想象成优先事项。如果按钮都具有相同的重量,它们将全部缩放以适合屏幕。

将RelativeLayout更改为LinearLayout并添加属性:

android:orientation="vertical"

按钮应该都具有相同的高度,并且

android:layout_centerHorizontal="true"

您可以删除

android:layout_below="@id/btn_main_aboutus

然后根据需要添加边距和偏好。