如何为不同的屏幕创建不同的布局

时间:2016-01-13 10:56:33

标签: android android-layout screen android-drawable screen-resolution

我有多个图像的布局我希望在每个屏幕尺寸上完美地显示它我已经创建了布局 - 小,普通,大和xlarge也不同的可绘制文件夹hdpi,mdpi,xhdpi,xxhdpi,ldpi但我很困惑哪个布局使用哪个dpi文件夹以及我应该在不同的dpi文件夹上放置什么图像大小。

有人请帮助我摆脱这个问题吗?

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:id="@+id/imageView9"
    android:background="@drawable/main_header"
    android:layout_gravity="center_horizontal"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginLeft="20dp"
    android:layout_marginStart="20dp"
    android:layout_marginTop="20dp" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:id="@+id/imageView10"
    android:src="@drawable/icon_menu_copy"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="15dp"
    android:layout_toRightOf="@+id/imageView9"
    android:layout_toEndOf="@+id/imageView9" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Text"
    android:id="@+id/textView"
    android:layout_below="@+id/imageView10"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="69dp" />

谢谢

3 个答案:

答案 0 :(得分:0)

如果我理解了您的问题,请不要这样做,但是例如在xlarge设备上,您的应用程序会使用layout-xlarge进行布局和xhdpi进行绘制。

答案 1 :(得分:0)

请在资源中使用不同的值文件夹进行布局。并且只为纵向和横向布局制作一个或两个布局。同时为不同尺寸的图像制作不同的可绘制文件夹。

请参阅链接了解更多详情。 Mobile Design Practice

答案 2 :(得分:0)

Android Studio会为您选择合适的dpi。因此,您可以将创建的每个文件夹中使用的每个图像放在不同大小但名称相同的位置。 例如:

0.75x drawable-ldpi   (120 dpi, Low density screen)        - 36 x 36px<br/> 
1x    drawable-mdpi   (160 dpi, Medium density screen)     - 48 x 48px<br/> 
1.5x  drawable-hdpi   (240 dpi, High density screen)       - 72 x 72px<br/> 
2x    drawable-xhdpi  (320 dpi, Extra-high density screen) - 96 x 96px<br/> 
3x    drawable-xxhdpi (480 dpi,                         )  - 144 x 144px