随着Android设备屏幕越大,按钮就越高

时间:2013-09-02 19:15:48

标签: android android-layout button position screen

我放了两个带有wrap_content大小的按钮,但是由于设备较大,按钮位于上方,我无法确定如何修复它们,所以在所有设备上都有相同的位置。例如,有没有解决方案不能覆盖这个人的头脑。

enter image description here

Layout.xml

<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:background="@drawable/background"
    tools:context=".BasicScreenActivity" >

     <Button
         android:id="@+id/button1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_alignParentTop="true"
         android:layout_marginTop="102dp"
         android:background="@drawable/custom_button1" />

     <Button
         android:id="@+id/button2"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_below="@+id/button1"
         android:background="@drawable/custom_button2" />

</RelativeLayout>

3 个答案:

答案 0 :(得分:0)

//尝试下面的一个

#remove the margin top 102dp
#don't use button background image use color with white stroke
#make your button width as match parent and minheight= 100dp as ur need.
#add android:gravity="center" to your parent layout



<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:background="@drawable/background"
    android:gravity="center" 
    tools:context=".BasicScreenActivity" >

     <Button
         android:id="@+id/button1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_alignParentTop="true"
         android:background="@android:color/holo_green_dark" />

     <Button
         android:id="@+id/button2"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_below="@+id/button1"
         android:background="@android:color/holo_green_dark" />

</RelativeLayout>

答案 1 :(得分:0)

Android在具有不同屏幕分辨率的多台设备上运行,以下是如何全部支持它们:Supporting Multiple Screens

基本上我们有以下屏幕分辨率:

xlarge screens are at least 960dp x 720dp
large screens are at least 640dp x 480dp
normal screens are at least 470dp x 320dp
small screens are at least 426dp x 320dp

enter image description here

为了支持所有这些,在 Res 文件夹中,我们必须根据我们想要支持的屏幕创建文件夹。

layout-xlarge
layout-large
layout-normal
layout-small

之后,将最终的layout_file.xml复制到所有这些文件,在图形模式下打开它,然后重新排列按钮,使其在屏幕上看起来很好看。根据分辨率屏幕,android将选择更接近设备分辨率的布局。只需在不同的设备或虚拟设备上进行测试,以确保它看起来不错。

答案 2 :(得分:0)

如果您希望在启动应用时覆盖设备的整个屏幕,您需要LinearLayout的重量

<LinearLayout 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:background="@drawable/background"
    android:orientation="vertical"
    tools:context=".BasicScreenActivity">

     <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="0 dip" //this is important!
        android:layout_weight="5" //<-- add this
        android:layout_marginTop="102dp"
        android:background="@drawable/custom_button1" />

     <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="0 dip" //this is important!
        android:layout_weight="5" //<-- add this
        android:background="@drawable/custom_button2" />

</LinearLayout>

我的重量总和通常等于10,因此更容易计算和可视化UI