【问题标题】:Android xml-how to optimise layout for devicesAndroid xml-如何为设备优化布局
【发布时间】:2013-05-29 11:56:27
【问题描述】:

我制作了一个简单的布局,但我无法针对不同的屏幕尺寸对其进行优化。我让它在 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"/>

【问题讨论】:

    标签: xml button layout screen-size


    【解决方案1】:

    使用 dp 是正确的方法。它不会是一个恒定的大小,因为 AOS 将根据屏幕密度使用乘数缩放 dps。 (顺便说一下 dip==dp 它们是完全一样的)所以 dps 与密度无关。然而,缩放通常是不够的。所以你需要为不同的屏幕创建单独的资源,我可能会说支持多个屏幕对@$$ 来说是一个非常大的痛苦。似乎唯一一种好的和正确的方法是使用 OpenGL...
    您可能会发现以下链接很有帮助:
    How to use resource qualifier on layouts to distinguish smartphones like HTC Desire and Samsung Galaxy Nexus
    image size (drawable-hdpi/ldpi/mdpi/xhdpi)
    Avoid Multiple Drawable Sets (hdpi/mdpi/ldpi)
    Widget Layout for 960x540 and 854x480
    getDimension()/getDimensionPixelSize() - mutliplier issue
    http://www.findbestopensource.com/product/svg-android

    【讨论】:

    • 感谢所有我帮助过的人。对android来说是个新手,很高兴有像你这样的人来帮助我。我知道获取不同屏幕的应用程序大小可能很困难,但我也知道它会成就或破坏应用程序的声誉。再次感谢!!!
    • 当你能做到的时候别忘了选择一个答案
    【解决方案2】:

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

    【讨论】:

    • 嘿听起来不错我可能会尝试找到如何正确编程布局。关于我可以在哪里找到有关此主题的某些特定信息的任何链接或想法?非常感谢您的回复!
    猜你喜欢
    • 2017-09-12
    • 2014-11-17
    • 2018-01-15
    • 2012-12-21
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 2012-03-14
    • 2011-06-13
    相关资源
    最近更新 更多