如何根据屏幕分辨率调整布局和滚动视图的大小

时间:2012-03-08 05:22:33

标签: java android

我为屏幕分辨率480x800设置了布局和滚动视图。如何兼容其他屏幕分辨率? 这是我的代码。请帮帮我。

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="150dp"
android:orientation="vertical" >
<ScrollView android:id="@+id/ScrollView01"
 android:layout_width="fill_parent"
android:layout_height="200dp"
android:background="#86C3C6" >
<TextView
        android:id="@+id/tvHistory"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#86C3C6"
        android:gravity="right"
        android:focusable="true"
        android:text=""
        android:textColor="#FFFFFF" />
 </ScrollView>
</RelativeLayout>

请帮我设置布局,滚动视图和文本化程序

2 个答案:

答案 0 :(得分:3)

首先,Android不支持“屏幕分辨率”的概念。有屏幕尺寸和屏幕(或像素)密度。由于您已经在使用与密度无关的像素(dp),我想您的问题是支持不同的屏幕尺寸。

支持其他屏幕大小的方法是使用特定于大小的资源目录。例如,除了res/layout(你现在可能有上面的布局文件),你可以res/layout-large来支持大屏幕。有关此内容的详细信息,请参阅指南主题Supporting Multiple Screens及其链接的页面。

您可能还考虑不为视图指定确切的大小,而是让它们填充父级或包装其内容。如果这不适用于您的布局,并且您需要指定视图大小,则可以将大小设置为变量,并在res/valuesres/values-large等文件夹中定义大小。例如,在res/layout/main.xml中,您可以拥有自己的布局:

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="@dimen/relative_layout_height"
    android:orientation="vertical" >
    <ScrollView android:id="@+id/ScrollView01"
        android:layout_width="fill_parent"
        android:layout_height="@dimen/scroll_view_height"
        android:background="#86C3C6" >
        <TextView
            android:id="@+id/tvHistory"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="#86C3C6"
            android:gravity="right"
            android:focusable="true"
            android:text=""
            android:textColor="#FFFFFF" />
    </ScrollView>
</RelativeLayout>

然后,在每个值文件夹中,您可以拥有一个dimens.xml文件,其中相关维度具有适当的值。在res/values/dimens.xml(适用于中型屏幕):

<dimen name="relative_layout_height">150dp</dimen>
<dimen name="scroll_view_height">200dp</dimen>

res/values-large/dimens.xml中你会有:

<dimen name="relative_layout_height">250dp</dimen>
<dimen name="scroll_view_height">300dp</dimen>

这样,您只需要一个布局,并且可以通过尺寸值进行参数化,尺寸值会因屏幕尺寸而异。

答案 1 :(得分:1)

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" //would fill what ever size it wud be.
android:orientation="vertical" >
  <ScrollView android:id="@+id/ScrollView01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" //would fill what ever size it wud be.
    android:background="#86C3C6" >