任何人都可以根据“支持多个屏幕”为我提供Android中按钮和textViews的示例吗?

时间:2011-07-01 07:17:55

标签: android java-me

我读了 http://developer.android.com/guide/practices/screens_support.html.com? 但是无法知道如何应用这个,有人能给我一些按钮和textview示例,它将如何适用于不同的设备?

2 个答案:

答案 0 :(得分:2)

它并不像你想象的那么复杂。首先请记住,您的基本布局始终设计为mdpi,适用于具有中等密度(约160 dpi)的正常屏幕尺寸。

因此,在设计布局时,重要的是在定义布局时不要将px用作单元。相反,始终使用dp(与密度无关的像素)作为单位,因为它们会自动缩放为当前密度的正确数px

直到这一刻,您只有一个文件(例如myLayout.xml)用于所有不同的布局大小(小,普通,大和xlarge)。如果您认为在具有xlarge显示的设备(例如平板电脑)上的布局应该不同,那么您只需在与layout-xlarge相同的级别创建另一个名为layout的文件夹,并创建另一个名为{{1的布局文件}}。您现在可以对此文件进行更改,以使具有xlarge显示的设备上的布局看起来不同。也许你想要一个更大的文本框,你想要重新排列 按钮和文本框。

如你所见,这并不难。只需使用dp作为维度的单位,Android将为您完成剩下的工作。

答案 1 :(得分:0)

支持多个屏幕的最简单方法是将资源放在不同的密度文件夹中,并将布局放在不同的布局大小文件夹中。

例如,具有以下文件夹结构:

AppRoot/
  res/
    drawable/
    drawable-hdpi/
  layout/
  layout-large/

您可以根据密度和大小将位图放在不同的可绘制目录中。这为不同的密度屏幕分类了不同的位图。

对于根据屏幕尺寸的不同布局,在布局和布局 - 大型目录中放置不同的布局以支持您希望如何显示屏幕。

让我们举一个小型设备的简单列表填充屏幕的简单示例,而不是大屏幕,您可能希望列表在40%的屏幕上,以及右侧的信息:

<强> layout/main_layout.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    >
    <ListView
        android:id="@+id/main_list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
</LinearLayout>

<强> layout-large/main_layout.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:weightSum="1.0"
    >
    <LinearLayout
        android:orientation="horizontal"
        android:layout_weight="0.4"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        >
        <ListView
            android:id="@+id/main_list"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
        />
    </LinearLayout>
    <LinearLayout
        android:id="@+id/details_large"
        android:layout_weight="0.6"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        >
        <include layout="@layout/detail_information" />
    </LinearLayout>

现在您的应用程序可以使用“main_layout”,设备将根据屏幕大小选择一个,这将为您提供多屏幕支持。

重要的一点是布局是相同的命名文件main_layout.xml,而android从正确的文件夹本身中选择一个。按钮等位图也是如此;将相同的命名位图放在多个目录中,并根据屏幕密度排除要使用的位置。

我没有在这些示例中放置文本视图和按钮,因为它们只是您可以根据需要填写的布局元素。