我搜索过Stackoverflow和谷歌,我找到的答案是希望字体保持相同大小的人,但我希望它们在屏幕变大时变大。
具体来说,我想在我的应用程序中使用非常大的字体。在我的手机上,它们是1/2英寸高 - 完美。我的问题是,在我的7英寸平板电脑上,它们也是1/2英寸高,我希望它们可以向上扩展,大约1英寸高。我尝试过sp和dp模式,两者都只保持字体相同的物理高度,这不是我想要的。我看到有3.2或更高版本的平板电脑有新功能,但我想支持2.3及更高版本的设备。我见过复杂的代码,它说自动缩放字体以适应文本的宽度,但这不是我需要的。我希望这些字体相当于手机上的100sp和平板电脑上的200sp。我没有图形和简单的相对布局,屏幕上的元素很少。我只需要为大屏幕制作一些更大的文本。我认为这很简单,但我找不到它。
以下是典型的文字视图条目
<TextView
android:id="@+id/textDistance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/labelDistance"
android:layout_centerHorizontal="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#ffffff"
android:textSize="100sp" />
有一个相对简单的直接方法吗?
答案 0 :(得分:5)
'dp'或'dip'尺寸 - 特别针对不同的屏幕制作。所以,你的任务没有任何特殊的维度。
要实现不同的文字大小,您必须创建多个样式,并将它们放在文件夹values-xlarge
,values-large
,values-normal
和values-small
中。
一种风格将如下所示:
<style name="BigTextStyle">
<item name="android:textSize">50dp</item> <!-- different values in different folders -->
</style>
在文本视图中只提供样式参考:
<TextView
style="@style/BigTextStyle"
...
/>
答案 1 :(得分:3)
我选择了方法:http://developer.android.com/guide/topics/resources/more-resources.html#Dimension并在dimens.xls文件中添加了一行:
<resources>
<dimen name="padding_small">8dp</dimen>
<dimen name="padding_medium">16dp</dimen>
<dimen name="padding_large">16dp</dimen>
<dimen name="font_size">200sp</dimen>
以上是views-large中的文件。在视图文件中,我有100sp而不是200sp。
现在我的平板电脑上的字体很大。根据文档,这可能是一些新手机的问题,5英寸,这就是为什么有一些方法来处理这个在较新版本的Android,但我希望这可以在旧手机和7英寸平板电脑,这将解决我的问题。上面的解决方案让我对此有所帮助,我确信,我只是采用了这个,因为它看起来更简单,并且得到了Google的充分记录。
在我的布局文件中,我只是将字体大小的特定标注更改为:
<TextView
android:id="@+id/textDistance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/labelDistance"
android:layout_centerHorizontal="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#ffffff"
android:textSize="@dimen/font_size" />