5

我已经搜索了 Stackoverflow 和 google,我找到的答案是那些希望字体保持相同大小但我希望它们在屏幕变大时变大的人的答案。

具体来说,我想在我的应用程序中使用非常大的字体。在我的手机上,它们有 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" />

有没有一种相对简单直接的方法来做到这一点?

4

2 回答 2

5

'dp' 或 'dip' 尺寸 - 专为在不同屏幕上相同而设计。因此,您的任务没有任何特殊维度。

为了实现不同的文本大小,您必须创建几种样式,并将它们放在文件夹values-xlargevalues-large和.values-normalvalues-small

一种样式如下所示:

<style name="BigTextStyle">
    <item name="android:textSize">50dp</item> <!-- different values in different folders  -->
</style>

在您的文本视图中,只需提供样式参考:

<TextView 
    style="@style/BigTextStyle"
    ...
/>
于 2012-07-16T15:53:00.627 回答
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英寸的平板电脑,这将解决我的问题。上面的解决方案导致我这样做,我相信它也可以工作,我只是选择了这个,因为它看起来更简单并且谷歌有很好的记录。

在我的布局文件中,我只是将字体大小的特定标注更改为:

    <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" />
于 2012-07-16T20:29:07.113 回答