1

我从头开始创建了一个 Hello World 应用程序。它的布局包含一个 TextView,它没有指定android:textSize值,它在真实设备的屏幕上显示良好。我又添加了一些,它们以磅为单位明确指定文本大小,它们看起来都非常非常小,几乎不可见。

<!-- Without textSize given. This one shows fine. -->
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello" />
<!-- These have a different size, in points. They are invisible. -->
<TextView
    android:textSize="12pt"
    android:text="Hello world, 12pt"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>
<TextView
    android:textSize="16pt"
    android:text="Hello world, 16pt"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>

作为进一步的测试,我在res.values文件夹中放置了一些尺寸并以编程方式访问它们:

<resources>
    <dimen name="fontSize">8pt</dimen>
    <dimen name="height">60dp</dimen>
</resources>
......
......
i = getResources().getDimensionPixelSize(R.dimen.fontSize); // returns 1
i = getResources().getDimensionPixelSize(R.dimen.height); // returns 90

三星 Galaxy S2 i9108 的密度为 240dpi,因此 60dp 相当于 90 像素。但是对于以点为单位的所有大小,它们似乎都被转换为非常小的值。有人有想法吗?提前致谢。

这个应用程序有一个minSDKVersion="10",这就是 i9108 是什么。所以我不认为这会是一个问题。而且,这个应用程序在模拟器上运行良好,但不能在真实设备上运行。

(我手头没有真机,测试难度很大,所以目前还没有做很多测试。)

有人有想法吗?先感谢您。

4

2 回答 2

2

在我的用户的帮助下,我确认三星 Galaxy S2 i9108 有一个“错误”,它不能正确转换 pt 中的测量值。至于 dp 和 sp,它们是正确翻译的。我不想花时间解释为什么 pt 不正确,我们只是将所有字体大小更改为 dp 或 sp,尚未决定。(我们一开始没有使用 sp 是有原因的。)

这似乎只发生在 i9108 上,我让 i9100 的用户确认我们的应用程序在他们的手机上没有问题。所以我认为这是一个 i9108 特有的问题。

非常感谢所有回复我的人。谢谢。

于 2012-01-11T04:18:45.390 回答
0

对于文本大小,建议使用sp与屏幕密度无关的单位度量,也可以按字体大小进行缩放。

更多信息:http: //developer.android.com/guide/topics/resources/more-resources.html#Dimension

于 2012-01-10T21:17:24.420 回答