![](/img/trans.png)
[英]Detect date changes and send notification at user-set time in React Native
[英]How do I detect the user-set screen zoom level in kotlin
我試圖在 Kotlin 中找到一種方法來檢測用戶在其設備上設置的顯示縮放級別。 我目前有兩個帶有標簽的圖像按鈕,在 LinearLayout 中並排放置在一側。 如果顯示縮放設置超過某個閾值,則標簽會換行。 我想做的是檢測縮放級別(或其他任何名稱)並在文本超過一定大小時垂直堆疊它們,以便視力不太理想的用戶可以正確閱讀它們。 這在 Kotlin 中是否可行?
DisplayMetrics.DENSITY_DEVICE_STABLE專門為此目的而存在。 將其與您當前的密度 Dpi 進行比較。
我建議您使用FlexboxLayout來完成您想要在這里實現的目標。
但是,如果您堅持使用 LinearLayout 並根據天氣反轉它的方向,您的文本是否適合那里,您可以使用BoringLayout幫助您計算繪制特定文本所需的寬度,例如以下代碼告訴SomeText
需要多少空間使用textSize=20 SP
的顏料繪制。 因此,根據此值,您可以決定如何設置 LinearLayout 的方向
val paint = TextPaint().apply {
textSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 20f, context.resources.displayMetrics)
}
BoringLayout.getDesiredWidth("SomeText", paint)
我能夠在configuration
命名空間中找到我需要的值。 有兩個影響布局的用戶設置,字體比例和顯示縮放,兩者都可以相互獨立設置。
val config = resources.configuration
val fontScale = config.fontScale
val screenWidth = config.screenWidthDp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.