Android 使字体在更大的屏幕上变大

Android 使字体在更大的屏幕上变大,android,android-layout,Android,Android Layout,我搜索过Stackoverflow和google,我找到的是那些希望字体保持不变,但我希望屏幕变大时字体变大的人的答案 具体来说,我希望在我的应用程序中使用非常大的字体。在我的手机上,它们有1/2英寸高,非常完美。我的问题是,在我的7英寸平板电脑上,它们也有1/2英寸高,我希望它们可以放大,大约有1英寸高。我尝试过sp和dp模式,但都只是保持字体的物理高度相同,这不是我想要的。我看到3.2及更高版本的平板电脑有了一些新功能,但我想支持2.3及更高版本的设备。我看到过复杂的代码,它会自动缩放字体以

我搜索过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" />


是否有一种相对简单的直接方法来实现这一点?

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

要实现不同的文本大小,您必须创建几种样式,并将它们放入文件夹
值xlarge
值large
值normal
值small

一种样式如下所示:

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

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

<TextView 
    style="@style/BigTextStyle"
    ...
/>

我使用了这里的方法:并在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>

8dp
16dp
16dp
200便士

上面是大视图中的文件。在视图文件中,我有100sp而不是200sp

现在,我的平板电脑上的字体很大。根据文档,这可能是一些新手机的一个问题,5英寸的手机,这就是为什么在新版安卓系统中有办法解决这个问题,但由于我希望它能在旧手机和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" />


我能再了解一下这个解决方案吗,它看起来不错。我有两个文件夹“values”和“values large”“values”有dimens.xml、strings.xml和styles.xml。“values large”只有一个dimens.xml文件。我假设您建议我创建新文件夹,其中一个是“values xlarge”,然后我会在其中放一个dimens.xml文件夹。我应该将What is
dimens.xml
放在哪里?我真的从来没见过这个。有关android如何从不同文件夹中选择资源的更多信息,请参见:两个字:您必须在“默认”中定义所有资源文件夹
如果要覆盖某些默认值,请使用必要的修改器创建
值-??
,并仅使用覆盖值放置这些文件。dimens.xls文件夹是维度文件,在我的项目中,仅具有填充值。我假设您建议的样式语句进入名为styles.xml的文件。但是我链接的文档让我觉得应该在那里定义文本大小。这使我困惑。也许两者都可以。不确定。感谢您澄清默认文件夹。