2011-12-21 95 views
2

我已经阅读了许多有关支持多种屏幕尺寸的文档,但仍然感到困惑。 我读过,如果在dp中指定它会自动缩放。所有屏幕尺寸的单一布局

在我的示例中,我只有一个布局。我已经放置了一个编辑文本。 并给定宽度,假设为170 dp。假设宽度是5英寸手机模拟器的一半。我期待的是,如果我在7英寸或10英寸的平板电脑上展示它,那么它也将是屏幕宽度的一半(即它会自动缩放)。但它没有。在10英寸的平板电脑中,它只有非常小的尺寸。

我应该怎么做,只有通过布局XML(仅单个XML)

回答

1

学会使用权的布局,您可以使用它们像100

<?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%

正如你所看到的TextView的包裹当它到达屏幕的50%。处理所有尺寸的屏幕。

+0

这就是诀窍。谢谢。怎么样的文字大小?我们是否也可以同样进行调整? – mia 2011-12-22 04:53:49

+0

不只是使用'sp'作为文字大小 – Blundell 2011-12-22 13:09:13

+0

我曾尝试过sp,但它的效果与我在我的问题中解释的一样。所以对于文本的情况下,我必须创建不同的风格,适合大和xlarge的权利?我不能使用单个xml实现它! – mia 2011-12-22 18:15:03

2

不要设置固定宽度,TextView的是Android将自动缩放它使用了正确的尺寸

  android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 

实现这一目标基本上,这会使TextView成为设备宽度的完整大小,并将高度仅包裹到文本所需的高度。

如果需要,YOu也可以对warp_content宽度进行设置。这是最好的方法。如果您静态设置它,则需要使用XML创建不同的布局。

+0

对不起,但不能解答我的问题。或者这是一个限制。 – mia 2011-12-22 04:02:09