简体   繁体   English

LayoutElementBuilders.Text 的 autoSizeTextType 属性

[英]autoSizeTextType property for wear LayoutElementBuilders.Text

In Android wear TileService we have to use LayoutElementBuilders.Text for displaying Text.在 Android wear TileService中,我们必须使用LayoutElementBuilders.Text来显示文本。 In xml we can use autoSizeTextType for TextView.在 xml 中我们可以对 TextView 使用autoSizeTextType

How can i apply this property in LayoutElementBuilders.Text for wear TileService ?我如何在LayoutElementBuilders.Text中应用这个属性来磨损TileService

I didn't find any method in the Builder.我没有在 Builder 中找到任何方法。

Here i am sharing my solution to solve my problem.在这里,我分享我的解决方案来解决我的问题。

Requirement was not to change font size when user change display font size from setting.当用户从设置中更改显示字体大小时,要求不更改字体大小。

For fixed size i have to use font size in dp in dimen file like 20dp .对于固定大小,我必须在dimen文件中使用dp中的字体大小,如20dp

In DimensionBuilders.SpProp.Builder class method setValue expect value in sp .DimensionBuilders.SpProp.Builder class 方法setValue中期望值在sp中。

In LayoutElementBuilders.FontStyle.Builder class method setSize expect SpProp .LayoutElementBuilders.FontStyle.Builder class 方法setSize期望SpProp

So i have to calculate a scale factor and multiply with dp value.所以我必须计算一个比例因子并乘以 dp 值。

    fun getScaleFactorForDp(context: Context) : Float {
        return (1.0f/context.resources.configuration.fontScale)
    }


    fun getSpProp(context: Context, @DimenRes dimensionId: Int, scaleFactor : Float = 1f): DimensionBuilders.SpProp {
        val spValue = (context.resources.getDimension(dimensionId) / context.resources.displayMetrics.density) * scaleFactor
        return DimensionBuilders.SpProp.Builder()
            .setValue(spValue)
            .build()
    }

   -------------------------------------------------     
    
    val scaleFactor = getScaleFactorForDp(context)
    LayoutElementBuilders.FontStyle.Builder()
        .setSize(getSpProp(context, R.dimen.text_size,scaleFactor))
        ....
        build()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM