java - 不同屏幕之间的文本字体大小比例

标签 java android kotlin mobile

我必须定义不同屏幕尺寸的文本字体大小。假设以下 dimen.xml 是默认的:

<dimen name="font_5">5sp</dimen>
<dimen name="font_6">6sp</dimen>
<dimen name="font_7">7sp</dimen>
<dimen name="font_8">8sp</dimen>
<dimen name="font_9">9sp</dimen>
<dimen name="font_10">10sp</dimen>
<dimen name="font_11">11sp</dimen>
<dimen name="font_12">12sp</dimen>
<dimen name="font_13">13sp</dimen>
<dimen name="font_14">14sp</dimen>
<dimen name="font_15">15sp</dimen>
<dimen name="font_16">16sp</dimen>
<dimen name="font_18">18sp</dimen>
<dimen name="font_20">20sp</dimen>
<dimen name="font_21">21sp</dimen>
<dimen name="font_25">25sp</dimen>
<dimen name="font_26">26sp</dimen>
<dimen name="font_30">30sp</dimen>
<dimen name="font_35">35sp</dimen> 

我已经为所有其他维度(w820dp、sw600dp、sw800dp)创建了一个 dimen.xml,并且在这些文件中我声明了相同的比率 (X2),如下所示

<dimen name="font_5">10sp</dimen>
<dimen name="font_6">12sp</dimen>
<dimen name="font_7">14sp</dimen>
<dimen name="font_8">16sp</dimen>
<dimen name="font_9">18sp</dimen>
<dimen name="font_10">20sp</dimen>
<dimen name="font_11">22sp</dimen>
<dimen name="font_12">24sp</dimen>
<dimen name="font_13">26sp</dimen>
<dimen name="font_14">28sp</dimen>
<dimen name="font_15">30sp</dimen>
<dimen name="font_16">32sp</dimen>
<dimen name="font_18">36sp</dimen>
<dimen name="font_20">40sp</dimen>
<dimen name="font_21">42sp</dimen>
<dimen name="font_25">50sp</dimen>
<dimen name="font_26">52sp</dimen>
<dimen name="font_30">60sp</dimen>
<dimen name="font_35">70sp</dimen>

我已经使用 7 英寸的平板电脑开发了一个示例应用程序进行测试,但我发现在智能手机中字体大小比预期的要小一些。另一方面,如果我使用智能手机作为导航调整字体,在平板电脑中它们会变得太大。 假设我想保持默认的 dimen.xml 不变,我应该使用什么比率来定义其他 dimen.xml?

最佳答案

这可能会帮助您处理不同屏幕尺寸的文本字体大小

android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="14sp"
android:autoSizeMaxTextSize="20sp"

关于java - 不同屏幕之间的文本字体大小比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58874546/

相关文章:

android - 第二个 HttpUrlConnection 在真实设备上挂起

android - 在 Android 模拟器上使用 Fiddler 记录 HTTP 请求/响应

android - Kotlin:如何在viewModel中观察一次liveData?使用ObserveForever()和removeObserver()

java - 如何将 JTextField 动态添加到 JScrollPane 中?

java - 从 sql 创建 Hibernate Criteria 语句

android - 如何在android中自动静音和恢复铃声?

java - add() 在android androidx.fragment.app.FragmentTransaction 中定义

java - 在 Spring Boot 启动器中覆盖 log4j2 版本

Java声明对象但在 'if'内分配它是行不通的

java - 如何仅通过提供大小来像在 Java 中一样在 Kotlin 中创建数组?