0

我放了 2 个带有 wrap_content 大小的按钮,但是随着设备更大,按钮在上面,我不知道如何修复它们,所以在所有设备上都具有相同的位置。有没有办法不遮住这家伙的头,例如。

在此处输入图像描述

布局.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>
4

3 回答 3

0

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

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

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

在此处输入图像描述

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

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

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

于 2013-09-03T06:21:35.870 回答
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>
于 2013-09-02T19:26:15.930 回答
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

于 2013-09-03T08:18:50.423 回答