在我的应用程序中,我为字体定义为“18sp”。该字体大小在TextView(作为标题)和WebView(作为正文)中都使用。在一台mdpi设备上,两种字体看起来都是相同的大小;但是在nexus 10(xhdpi)上,TextView看起来正确,而WebView大小加倍。我设置文字大小使用Android WebView缩放字体大小
int fontSize = res.getDimensionPixelSize(R.dimen.textSize);
然后在体内使用CSS设置字体的网页流量:
<body style='font-size: " + fontSize + "px'>
为什么文本大小翻番很明显 - 一个xhdpi设备上18SP来到36px - 但我很困惑,为什么这是由TextView而不是由WebView自动处理。我能想到几种方法来处理这个,但我不知道是哪个(如果有的话)的正确方法是:
- 单独的字体大小为MDPI VS xhdpi设备
- 设置的默认缩放将WebView设置为100/displayMetrics.scaledDensity
- 将字体大小作为绝对整数(例如18sp将等于18)并将字体大小设置为该数字。
任何想法?由于
我知道如何设置大小,问题是以一种合理的方式获得大小。大小是在一个维度资源中定义的,所以我的xhdpi设备上的fontSize变量的值为36,这对于默认字体大小来说不是合适的大小。我需要在xhdpi和mdpi上获得18的大小,所以问题是从维度资源中获取该值的正确方法。 –