我一直在搜索,但无法找到解决方案。我有一个TextView
自定义ArrayAdapter
,文字大小为18sp
。我在两个模拟器上测试了这个:7“mdpi和4.7”xhdpi,差别非常明显。它基本上破坏了我的布局。我正在为版本4 +开发。
较小的一个对于mdpi显示器来说太小而第一个太大了。如何在这两个设备之间使文本显示相等(或具有非常小的差异)?字体设置设置为正常。
答案 0 :(得分:0)
为特定密度创建不同的values
目录,并在dimen.xml中设置值。
例如:
创建values-mdpi
和values-xhdpi
,每个目录都包含dimen.xml
,您可以在其中指定选择适当密度时要使用的尺寸。
答案 1 :(得分:0)
您可以使用res/values/dimens.xml
来定义文字大小,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="text_size">18sp</dimen>
</resources>
然后,您可以为res/values
文件夹使用多个configuration qualifiers,为每个屏幕尺寸提供不同的dimens.xml
。例如:
res/values-small/dimens.xml
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="text_size">24sp</dimen>
</resources>
res/values-large/dimens.xml
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="text_size">14sp</dimen>
</resources>
并在布局中应用您的维度:
<TextView android:id="@android:id/title"
android:textSize="@dimen/text_size"/>
请参阅res/values/styles.xml
中的维度,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="my_text">
<item name="android:textSize">@dimen/text_size</item>
</style>
<resources>
在布局中应用这样的风格:
<TextView android:id="@android:id/title"
style="@style/my_text"/>