【问题标题】:Should I make different layout (xml files) for different android mobiles我应该为不同的android手机制作不同的布局(xml文件)吗
【发布时间】:2017-04-03 16:31:41
【问题描述】:

我是否应该创建不同的布局文件夹来存储我的 xml 布局文件。支持我的应用程序在不同的屏幕尺寸上?

我开发了一个应用程序,当添加可绘制对象时,它会自动创建不同的尺寸,如 xdpi ldpi 等,但不会自动创建布局 xml 文件以支持不同的屏幕尺寸。我应该这样做吗?而且我将使用 support-screen 标签编辑清单文件以支持不同的大小。这就是全部吗?它还会支持我的横向或纵向模式吗?请确认我。我是堆栈和 android 开发的新手。

编辑: 我相信不同文件夹中的不同布局文件..将只是彼此的副本,代码中仅显示文件夹名称更改广告

res/layout/my_layout.xml             // layout for normal screen size ("default")
res/layout-small/my_layout.xml       // layout for small screen size
res/layout-large/my_layout.xml       // layout for large screen size
res/layout-xlarge/my_layout.xml      // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation

这是我的布局 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/content_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:showIn="@layout/app_bar_main"
    tools:context="com.example.root.meeransunday.MainActivity">


    <Button
        android:id="@+id/button1"
        android:layout_width="200dp"
        android:layout_height="90dp"
        android:text="Send Mobile"
        android:drawableLeft="@mipmap/sms"
        android:layout_alignParentBottom="true"
        android:layout_marginRight="-1dp"
        android:layout_marginLeft="-3dp"
        android:layout_marginBottom="-4dp"
        android:onClick="message"/>
    <Button
        android:id="@+id/button2"
        android:layout_width="200dp"
        android:layout_height="90dp"
        android:text="QR Code"
        android:drawableLeft="@mipmap/qr"
        android:layout_marginLeft="190dp"
        android:layout_marginRight="-20dp"
        android:layout_marginBottom="-4dp"
        android:layout_alignParentBottom="true"
        android:onClick="scan"
        />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="30dp"
    android:layout_centerHorizontal="true"
    android:text="        My Account Balance"
    android:textColor="#0D47A1"
    />
    <TextView
        android:text="PKR 1527.87"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp"
        android:layout_centerHorizontal="true"
          android:drawableLeft="@mipmap/money"
        android:textSize="35sp"
        android:id="@+id/textView2"

        />
</RelativeLayout>

清单文件:

<supports-screens android:smallScreens="true"
            android:normalScreens="true"
            android:largeScreens="true"
            android:xlargeScreens="true"
            android:anyDensity="true"
            android:resizeable="true"/>

但它不适用于 4 英寸屏幕。

【问题讨论】:

标签: android android-layout screen-orientation


【解决方案1】:

如果布局相同,则无需创建多个布局文件,您应该使用不同的dimens文件来调整元素的大小。

如果您希望应用在 hdpi 设备上的外观与在 xxxhdpi 上的外观不同,或者如果您有手机和平板电脑版本的屏幕,那么您应该使用多个布局文件。

【讨论】:

  • 我有 RIVO PHANTOM PZ15(开发手机)的 5 英寸屏幕和 4 英寸屏幕的 SAMSUNG GALAXY J1(测试屏幕)我的应用程序不适合 4 英寸屏幕的屏幕.. 怎么办?
  • 屏幕尺寸和屏幕密度是不同的东西。可能使用不同的尺寸文件并为较小的设备缩小视图是一个好方法。或者,如果您想从布局中删除元素以使其适合,请使用不同的布局文件。
  • 所以@adrian Coman 能否请您通过链接来研究在 android 中制作不同的 Dimens。 ??
  • cmets 中已经有多个链接或此问题的答案可以帮助您。从这里开始,然后继续底部的课程:developer.android.com/training/multiscreen/index.html
【解决方案2】:

这应该会有所帮助:https://developer.android.com/guide/practices/screens_support.html

无论如何,我认为您应该使用最多 2 个布局 xml(1 个用于水平视图,1 个用于垂直视图)进行活动。

【讨论】:

【解决方案3】:

实际上为不同的 android 设备创建不同的 xml 布局取决于需求。对于所有类型的设备只有一个 xml 布局以避免冗余代码总是好的,但是我们可以为所有类型的设备创建 xml,android 具有该功能。

【讨论】:

  • 如何使单个(一个)布局xml文件支持不同的android屏幕尺寸。比如4寸和5寸?
  • 你只能在你的android项目的layout目录中定义一个普通的.xml的xml布局。通过对布局的每个小部件应用适当的高度和宽度,您可以拥有单个 xml。
  • 请参阅,对于此类问题,最好为小型设备提供单独的 .xml。在那里您可以根据小型设备编辑您的高度和宽度。
  • 所以@Vinod Pattanshetti 我需要创建 res/layout-large/file.xml 和 res/layout-small/file.xml 并且必须手动测试和调试设备以设置高度和宽度?对吗??
  • 是的,您可以使用两个.xml,一个用于普通布局,一个用于小型布局。
【解决方案4】:

无需设计所有布局,如果您正在为手机和平板电脑制作应用程序,那么您可以设计 2 个布局。否则只设计这些 1. 肖像 2.风景

【讨论】:

  • 这 2 个布局 layout_portrait.xml 和 layout_landlscape.xml 是否也足以支持所有屏幕尺寸?像4英寸和5英寸的屏幕尺寸??
  • 是的,它会支持所有手机。它会根据屏幕大小自动调整。
  • 请查看我的布局文件(我添加)作为编辑@abhishek Kumar 它不起作用
  • 只为纵向和横向创建一个 res/layout/my_layout.xml。
  • 请将我的答案标记为正确并给予评分。 @nimraasad
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-27
  • 2023-03-17
  • 1970-01-01
  • 2021-10-20
  • 1970-01-01
相关资源
最近更新 更多