【发布时间】:2021-11-16 10:41:19
【问题描述】:
【问题讨论】:
-
您为什么要忽略用户设置,让那些难以清晰观察或难以触摸小目标的人无法访问该应用?
标签: android kotlin android-layout font-size display
【问题讨论】:
标签: android kotlin android-layout font-size display
如果您使用 dp(如 20dp)而不是 sp(如 20sp),则文本不会根据用户选择的字体大小进行缩放。 这将为您简化 UI 设计,但用户将字体变大是有原因的:他们看不到较小的字体。所以如果你选择忽略用户的设置,用户可能会选择忽略你的应用。
【讨论】:
确保您在布局 XML 文件的 textSize 属性中使用了 sp。 sp单元中的文字大小可以根据android系统设置自行调整。
例如-
..
android:textSize="14sp"
..
另外,您可以查看此参考资料-https://stackoverflow.com/a/2025541/10632119
Android Studio ic- "com.intuit.sdp:sdp-android", Dimenify 有一些插件和库可用,它会根据屏幕密度为我们的项目生成多个dimems.xml文件。
【讨论】:
以下是你必须做的事情,
【讨论】:
使用实现com.intuit.sdp:sdp-android:1.0.6。它会根据屏幕大小调整大小。
【讨论】:
虽然下面的代码可以防止字体大小缩放(使用一些不推荐使用的方法),但不能阻止显示大小缩放。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
adjustFontScale(resources.configuration)
}
private fun adjustFontScale(configuration: Configuration?) {
configuration?.let {
it.fontScale = 1.0F
val metrics: DisplayMetrics = resources.displayMetrics
val wm: WindowManager = getSystemService(Context.WINDOW_SERVICE) as WindowManager
wm.defaultDisplay.getMetrics(metrics)
metrics.scaledDensity = configuration.fontScale * metrics.density
baseContext.applicationContext.createConfigurationContext(it)
baseContext.resources.displayMetrics.setTo(metrics)
}
}
【讨论】: