1

我目前正在研究一个可以适应不同大小的 android 设备的布局文件。到目前为止,我已经取得了一些成功。使用“layout_weight”我已经能够制作一个线性布局来占用布局中一定比例的空间。这意味着显示器可以拉伸以覆盖整个屏幕,无论是 2'7 英寸屏幕还是 10'1 英寸屏幕。但是,我在顶部的线性布局中遇到了文本大小问题。如何使 TextSize 适应大型或小型设备?这是我的代码。

 <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:baselineAligned="false"
          android:weightSum="1.0"
          android:background="#ff0000"
          >
      <LinearLayout
          android:orientation="horizontal"
          android:layout_width="fill_parent"
          android:layout_height="0dip"
          android:layout_weight="0.25"
          android:weightSum="1.0">

     <TextView
        android:id="@+id/textView1"

        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="medium"
        android:textSize="30sp"
        android:layout_weight="1"

        android:textAppearance="?android:attr/textAppearanceLarge" />

     </LinearLayout>

     <LinearLayout
          android:orientation="horizontal"
          android:layout_width="fill_parent"
          android:layout_height="0dip"
          android:layout_weight="0.25"
          android:weightSum="1.0">        
         <ImageView 
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:src="@drawable/sample_1"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.25"
        />

        <ImageView 
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:src="@drawable/sample_2"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.25"
        />

        <ImageView 
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:src="@drawable/sample_3"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.25"
        />

        <ImageView 
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:src="@drawable/sample_4"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.25"
        />
     </LinearLayout>

     <LinearLayout
         android:orientation="horizontal"
         android:layout_width="fill_parent"
         android:layout_height="0dip"
         android:layout_weight="0.25"
         android:weightSum="1.0">        
           <ImageView 
               android:layout_width="0dip"
               android:layout_height="fill_parent"
               android:src="@drawable/sample_1"
               android:layout_gravity="center_horizontal"
               android:layout_weight="0.25"
           />

        <ImageView 
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:src="@drawable/sample_2"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.25"
        />

        <ImageView 
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:src="@drawable/sample_3"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.25"
        />

        <ImageView 
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:src="@drawable/sample_4"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.25"
        />
     </LinearLayout>
     <LinearLayout
      android:orientation="horizontal"
      android:layout_width="fill_parent"
      android:layout_height="0dip"
      android:layout_weight="0.25"
      android:weightSum="1.0">        
        <ImageView 
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:src="@drawable/sample_1"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.25"
        />

        <ImageView 
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:src="@drawable/sample_2"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.25"
        />

        <ImageView 
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:src="@drawable/sample_3"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.25"
        />

        <ImageView 
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:src="@drawable/sample_4"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.25"
               />
      </LinearLayout>
      </LinearLayout>
4

2 回答 2

1

在 res 文件夹中创建不同的文件夹,例如 values-ldpi, values-mdpi, values-hdpi, values-xhdpi

比在这些文件夹中创建 dimens.xml 文件

应该像

res/values-ldpi/dimens.xml
res/values-mdpi/dimens.xml
res/values-hdpi/dimens.xml

而不是为您的内部定义不同的尺寸TextView dimens.xml

于 2013-07-24T10:53:07.267 回答
0

在各种文件夹中使用 value.xml (ldpi,mdpi,hdpi)

于 2013-07-24T10:50:12.227 回答