0

我做了一个简单的布局,但我无法针对不同的屏幕尺寸优化它。我让它在 5.1 设备上看起来不错,但按钮在 10.1 上太小,在 3.2 屏幕上太大。我尝试过失败并且对许多可能性感到沮丧,但似乎找不到任何工作。任何想法将不胜感激,谢谢。这是我在 5.1 英寸屏幕上看起来不错的基本布局的代码。

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

<Button 
    android:id="@+id/playB"
    android:layout_width="300dp"
    android:layout_height="85dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true
    android:background="@drawable/menu_button"/>

<Button 
    android:id="@+id/aboutB"
    android:layout_alignLeft="@+id/playB"
    android:layout_below="@+id/playB"
    android:layout_marginTop="45dp"        
    android:layout_width="300dp"
    android:layout_height="85dp"
    android:layout_centerHorizontal="true"
    android:background="@drawable/menu_button"/>

<Button 
    android:id="@+id/settingsB"
    android:layout_alignLeft="@+id/playB"
    android:layout_below="@+id/aboutB"
    android:layout_marginTop="45dp"  
    android:layout_width="300dp"
    android:layout_height="85dp"
    android:layout_centerHorizontal="true"
    android:background="@drawable/menu_button"/>

4

2 回答 2

0

您为按钮使用了固定dp大小,因此它们将是恒定大小。这会使它们在小屏幕上太大而在大屏幕上太小。我强烈建议您研究如何针对多种屏幕尺寸进行设计。至于您的问题,您可以 1) 使用您想要的按钮宽度与屏幕宽度的比率来设置按钮大小。这必须以编程方式完成以检查设备尺寸;2)像这样为不同的屏幕创建不同的布局。

于 2013-05-29T12:11:42.060 回答
0

使用 dp 是正确的方法。它不会是一个恒定的大小,因为 AOS 将根据屏幕密度使用乘数缩放 dps。(顺便说一下 dip==dp 它们是完全一样的)所以 dps 与密度无关。然而,缩放通常是不够的。所以你需要为不同的屏幕创建单独的资源,我可能会说支持多个屏幕对@$$ 来说是一个非常大的痛苦。似乎唯一一种好的和正确的方法是使用 OpenGL ......
您可能会发现以下链接很有帮助:
如何在布局上使用资源限定符来区分智能手机,如 HTC Desire 和三星 Galaxy Nexus
图像大小(drawable-hdpi/ldpi/mdpi /xhdpi)避免 960x540 和 854x480 的
多个可绘制集 (hdpi/mdpi/ldpi)小部件布局

getDimension()/getDimensionPixelSize() - 多重问题
http://www.findbestopensource.com/product/svg-android

于 2013-05-29T19:32:14.007 回答