如何在android中正确设置文本大小

时间:2015-01-09 13:34:21

标签: android xml

我是Android的新手,正在开发一个应用程序。我已经阅读了很多文章,关于如何在android中正确设置Text Size的博客,但不幸的是他们并没有告诉我一些有用的东西。

我使用两种不同的AVD来测试我的应用程序。 其中一个是Nexus One 480 * 800 hdpi,另一个是Nexus 7 800*1280 tvdpi

我在Nexus 7创建了我的用户界面。我已将TextSize设为 72 Sp &它表现得非常好!但是当我改变AVD时,它不行。文字太大了。 我想如果我使用sp单位定义textSize,一切都会很顺利,但事实并非如此。 我试过以下事情:

  1. 我使用了sp单位,但没有用。
  2. 我尝试在一个avd中找到密度和textSize之间的关系,然后设置它以便在任何AVD中显示正确的textSize,但它也不起作用

    (在我的实验中,我发现Nexus 7的密度为213.它比Nexus One大。)我用这段代码计算密度:

    int densityDpi = (int)(metrics.density*160);

  3. 我读了一篇关于这个问题的文章&它解释说,您应该为应用程序创建多个UI。根据这种方法,UI总是正确显示,但它没有明确解释如何做到这一点。

1 个答案:

答案 0 :(得分:1)

简单的方法是使用res并覆盖dimens.xml,因为使用了设备

Android在所使用的设备上获得最佳资源基础,因此您可以使用它来进行样式布局,更改语言,主题和课程大小。

            android:textSize="@dimen/abc_text_size_body_1_material"

您需要在

中定义abc_text_size_body_1_material
res/values/dimens.xml
res/values-hdpi/dimens.xml
res/values-tvdpi/dimens.xml

更多信息http://developer.android.com/guide/practices/screens_support.html