适用于所有屏幕尺寸的单一布局

时间:2011-12-21 18:40:57

标签: android

我已阅读很多关于支持多种屏幕尺寸的文档,但仍然感到困惑。 我读过如果在dp中指定它会自动缩放。

在我的示例中,我只有一个布局。在那里我放置了一个编辑文本。 给定宽度,假设为170 dp。假设宽度方面它是5英寸手机模拟器中屏幕的一半。

我所期待的是,如果我在7英寸或10英寸的平板电脑上显示它,它也将是屏幕宽度的一半(即它会自动缩放)。但它没有。在10英寸的平板电脑中,它只是非常小的尺寸。

我应该怎么做才能通过布局xml(只有单个xml)来实现这个目标

2 个答案:

答案 0 :(得分:2)

不要为Textview设置静态宽度,因为android会使用

自动将其缩放到正确的大小
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"

基本上它的作用是使TextView成为设备宽度的完整大小,并将高度仅包装到文本所需的高度。

如果你愿意,你也可以为宽度做warp_content。这是最好的方法。如果静态设置,则需要使用XML创建不同的布局。

答案 1 :(得分:1)

学习使用布局权重,您可以像百分比一样使用它们。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <TextView
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="50"
        android:text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" />

    <View
        android:layout_width="0dip"
        android:layout_height="0dip"
        android:layout_weight="50" />

</LinearLayout>

这里textview占据屏幕宽度的50%,而另一个视图是一种不可见的间隔占据屏幕宽度的另外50%。

看起来像这样(Eclipse XML预览):

TextView wrapping at 50%

正如您所看到的,当文本视图达到屏幕的50%时,它会换行。适用于各种尺寸的屏幕。