代码之家  ›  专栏  ›  技术社区  ›  Daniel Jose Padilla Peña

我如何为android多屏设计最准确的Galaxy Nexus(720x1280)和Nexus 4(768x2280)?

  •  0
  • Daniel Jose Padilla Peña  · 技术社区  · 9 年前

    我正在开发一个使用密度标准的应用程序,但当我比较Galaxy Nexus(720x1280)和Nexus 4(768x2280)屏幕上的布局时,前者很好,后者的左侧有一个空白。
    我使用dp缩放布局,2个布局具有相同的密度(xhdpi)。

    那么,我如何设计具有相同密度和屏幕大小的不同布局呢?

    下面是创建xhdpi布局的示例代码,并在这两部手机中使用Android Studio预览以查看下一张图片。

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    
    <TextView
        android:layout_width="dimx"
        android:layout_height="dimy"
        android:background="@android:color/black"/>
    
    </LinearLayout>
    

    xhdpi文件夹中的dimens文件

    <resources>
        <!-- Default screen margins, per the Android Design guidelines. -->
        <dimen name="activity_horizontal_margin">16dp</dimen>
        <dimen name="activity_vertical_margin">16dp</dimen>
        <dimen name="fab_margin">16dp</dimen>
        <dimen name="dimx">360dp</dimen>
        <dimen name="dimy">512dp</dimen>
    </resources>
    

    另一个文件夹中的dimens文件

    <resources>
        <!-- Default screen margins, per the Android Design guidelines. -->
        <dimen name="activity_horizontal_margin">16dp</dimen>
        <dimen name="activity_vertical_margin">16dp</dimen>
        <dimen name="fab_margin">16dp</dimen>
        <dimen name="@dimen/dimx">0dp</dimen>
        <dimen name="@dimen/dimy">0dp</dimen>
    

    Nexus 4 layout

    Galaxy Nexus layout

    1 回复  |  直到 9 年前
        1
  •  0
  •   Gueorgui Obregon Vikram    9 年前

    您的xml有问题 android:layout_width="@dimen/dimx" android:layout_height="@dimen/dimy"

    编辑: 谷歌Nexus和Nexus 4 不同屏幕宽度 如果使用硬编码尺寸,这是主要问题。为了避免将来出现任何问题,请使用相对值而不是硬编码值,在您的情况下,设置match_parent将解决您的问题。

    希望有帮助!!

    推荐文章