我从头开始创建了一个Hello World应用。其布局包含一个TextView,该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。因此,我认为这不会成为问题。而且,此应用程序可以在模拟器上正常运行,但不能在真实设备上运行。

(我手头没有真正的设备,测试很困难。所以到目前为止,我还没有做很多测试。)

有人有主意吗?先感谢您。

最佳答案

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

这似乎仅发生在i9108上,我让i9100的用户确认我们的应用程序在他们的手机上还可以。因此,我认为这是i9108特有的问题。

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

09-28 06:07