在不同设备上制作相同大小的文本

时间:2012-11-08 13:26:33

标签: android android-layout text-size hdpi

我想知道如何让应用程序在不同的设备上看起来一样。我多次阅读Supporting Multiple Screens但我仍然无法理解如何生活。

以下是示例布局:

<?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"
        >
    <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Hello World, MyActivity"
            android:textSize="30sp"
            />
</LinearLayout>

有Galaxy S II(480x800)和Sensation XE(540x960)。它们都是hdpi,物理屏幕尺寸几乎相同。我希望在两台设备上看到相同的效果,但实际上540x960上的文字比480x800上的文字要小: enter image description here (左边是480x800,右边是540x960)

我尝试将文字大小指定为维度资源,并创建单独的文件夹values-w540dp,但它不起作用。

你们如何让你的应用程序在不同的hdpi设备上看起来一样?

3 个答案:

答案 0 :(得分:3)

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

android:textAppearance="?android:attr/textAppearanceMedium"

android:textAppearance="?android:attr/textAppearanceSmall"

这些属性可以解决您的问题。否则,您必须使用屏幕高度和宽度动态设置一些比例(或生成的因子,如:textSize = factor * height)。

答案 1 :(得分:0)

如果您在dp(与密度无关的像素)中指定文本大小,请查看metrics,它应该有效。文本的默认大小应为14dp左右。 (TextAppearance.small)

答案 2 :(得分:0)

2可能有用的网站,因为这两个网站都有一些与您的问题相关的金块,然而,两者都不是1-2-3如何纠正您所看到的问题: