动态文字大小根据平板电脑更改

And*_*oid 10 android text-size

经过一番努力,我终于到达了我在android中的第一个应用程序的结尾.并感谢所有人.但是在结束之后,我意识到我的应用文本大小在所有平板电脑尺寸中都很常见.所以我将重新提出我的问题.

问题:我在整个应用中使用了自己的自定义文字大小.还有一些满意的7英寸平板电脑.但是,当我在8.9英寸和10.1英寸平板电脑上看同样的东西时,它包含大量的空白区域和文字大小也相对较小.那么有什么方法可以根据我的平板电脑大小改变文字大小??? 它可能看起来像新手问题,但我正在努力解决这个问题,因为相同的应用程序在7英寸看起来很精彩,在8.9和10.1英寸中失去了它的本质.或者我可以用我的应用程序做同样的事情. 可能的解决方案: -正如我的主题所示,当平板电脑大小发生变化时,有一些方法可以更改文本大小.动态或任何其他方式.

编辑::根据Cheeta的回答,方法是正确的但我无法为每个布局按钮和文本字段和其他字段执行此操作.在单个应用程序中有数百个这样的字段.我可以在某个地方进行,并将其称为必需属性.自定义标签是我正在寻找的方法.是否可能????

任何帮助将不胜感激.提前致谢.

注意我还没有达成答案,但猎豹的答案在某种程度上导致了正确的方法.我将他的答案标记为正确,尽管他的答案几乎没有对齐问题.任何其他答案总是受欢迎的.谢谢

小智 32

在检查了一些资源后,我终于提出了以下解决方案:在layout-xml中,我使用维度声明定义了按钮文本的大小:

android:textSize="@dimen/campaign_textfontsize"
Run Code Online (Sandbox Code Playgroud)

我在"/ values"-subdirectory中创建了一个dimens.xml,其中包含相应的值

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="campaign_textfontsize">18dp</dimen>
</resources>
Run Code Online (Sandbox Code Playgroud)

然后我创建了第二个值文件夹"/ values-sw720dp"并将旧的dimens.xml复制到其中.在这个dimens.xml中我改编了fontsize值:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="campaign_textfontsize">24dp</dimen>
</resources>
Run Code Online (Sandbox Code Playgroud)

基于当前的屏幕大小,android选择适当的维度值.因此,在没有任何代码的情况下,字体适应显示器(和显示相关按钮)的大小.

希望这可以帮助...

  • 嘿凯.非常感谢你的回答.虽然很长一段时间我都在使用那个项目但是我肯定会尝试一下.再次感谢你为回答这么老的问题而痛苦. - 恶魔 (2认同)

Yah*_*had 15

我有同样的问题,但我意识到sp/db处理这类问题的效率不高,我处理我的对齐和字体大小相关的东西编程.

这是步骤,我是如何处理这个问题的.

  • 计算设备的屏幕宽度和高度
  • 使用Set TextView.setTextSize(unit, size),其中unit参数是 TypedValue.COMPLEX_UNIT_PX,size参数是屏幕总宽度的百分比.通常,对我来说,字体总宽度的0.5%是合适的.您可以尝试其他总宽度百分比,例如0.4%或0.3%.

这样,您的字体size将始终适合每个文本/屏幕大小.