TextView在不同的显示器上

时间:2014-01-22 10:02:46

标签: android


请帮忙理解。 我需要出现在一个特定的盒子里。 我是这样做的:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/fon"
    tools:context=".MainActivity" >

....

<TextView
        android:id="@+id/textView3"
        android:layout_width="200dp"
        android:layout_height="210dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:includeFontPadding="false"
        android:lineSpacingMultiplier="0.8"
        android:textAlignment="center"
        android:textColor="@color/black"
        android:textSize="20sp" />

....
 </RelativeLayout>

一切都在4英寸的屏幕上工作,但如果采取大的对角线,它将是坏的。
增加屏幕时,textView大小不会改变 我使用“dp”和“sp”,而不是静态“px”,但不起作用...... 为什么会这样?

截图:

4 inch

5.4 inch

3 个答案:

答案 0 :(得分:1)

您可以为不同的屏幕尺寸和密度创建不同的资源目录,然后在每个资源目录中创建dimens.xml,提供要在特定屏幕尺寸上使用的文本大小,例如:

RES /值-sw420dp / dimens.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="font_size">26sp</dimen>
</resources>

RES /值-sw600dp / dimens.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="font_size">30sp</dimen>
</resources>

RES /值-sw720dp / dimens.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="font_size">36sp</dimen>
</resources>

然后在布局文件中调用它:

android:textSize="@dimen/font_size"

这是文字大小的解决方案,但您可以对宽度和高度做同样的事情。

更多资源:

答案 1 :(得分:0)

文本视图大小是静态的,因为您已为它们定义了固定大小。使用换行内容。

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

答案 2 :(得分:0)

您应该将TextView android:layout_width和android:layout_height调整为

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

如果您希望TextView在白色背景中居中,则应添加另一个属性

android:layout_centerInParent="true"