我是Android的新手,正在开发一个应用程序。我已经阅读了很多文章,关于如何在android中正确设置Text Size
的博客,但不幸的是他们并没有告诉我一些有用的东西。
我使用两种不同的AVD来测试我的应用程序。
其中一个是Nexus One 480 * 800 hdpi
,另一个是Nexus 7 800*1280 tvdpi
。
我在Nexus 7
创建了我的用户界面。我已将TextSize
设为 72 Sp &它表现得非常好!但是当我改变AVD时,它不行。文字太大了。
我想如果我使用sp
单位定义textSize
,一切都会很顺利,但事实并非如此。
我试过以下事情:
sp
单位,但没有用。我尝试在一个avd中找到密度和textSize
之间的关系,然后设置它以便在任何AVD中显示正确的textSize
,但它也不起作用
(在我的实验中,我发现Nexus 7的密度为213.它比Nexus One大。)我用这段代码计算密度:
int densityDpi = (int)(metrics.density*160);
我读了一篇关于这个问题的文章&它解释说,您应该为应用程序创建多个UI。根据这种方法,UI总是正确显示,但它没有明确解释如何做到这一点。
答案 0 :(得分:1)
简单的方法是使用res并覆盖dimens.xml,因为使用了设备
Android在所使用的设备上获得最佳资源基础,因此您可以使用它来进行样式布局,更改语言,主题和课程大小。
android:textSize="@dimen/abc_text_size_body_1_material"
您需要在
中定义abc_text_size_body_1_materialres/values/dimens.xml
res/values-hdpi/dimens.xml
res/values-tvdpi/dimens.xml
更多信息http://developer.android.com/guide/practices/screens_support.html