【问题标题】:How to set the dimensions of a view programatically using sdp in andorid?如何在android中使用sdp以编程方式设置视图的尺寸?
【发布时间】:2023-02-10 21:21:27
【问题描述】:

我想以编程方式设置 TextView 的尺寸。但我使用的是 sdpssp 值。我如何使用这些值以编程方式设置文本视图的尺寸。

TextView tasks = new TextView(this);
tasks.setText(name);
tasks.setTextSize(??);
tasks.setMargin(??)
ViewGroup.LayoutParams l1 = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, height??); // what is the height input here?

以及如何设置文本大小(ssp)和边距/填充(sdp)?

【问题讨论】:

    标签: java android


    【解决方案1】:

    我有 2 个选项给你。

    1. 如果您只想为一种屏幕尺寸设置文本尺寸/边距。在values 文件夹中创建文件dimens。并使用该代码getResources().getDimension(R.dimen.dimen_name)。重点是dimens只允许dp、sp和px。但我认为这就足够了。
    2. 如果您想设置多屏。您可以使用该库 com.intuit.sdp:sdp-android 并像 getResources().getDimension(R.dimen._1sdp) 那样调用多维

    【讨论】:

      【解决方案2】:

      您可以制作您的 dimens.xml 文件并为每个密度输入所需的边距/尺寸。

      我建议使用来自https://github.com/intuit/sdp 的库

      您可以使用它来设置您的边距或尺寸

      Java ->
      getResources.getDimension(R.dimen._**sdp);
      
      Kotlin ->
      resources.getDimension(R.dimen._**sdp)
      

      如果您想以编程方式设置文本大小或 sp 大小,请使用此 https://github.com/intuit/ssp

      Java ->
      tasks.setTextSize(getResources.getDimension(R.dimen._**ssp);
      
      Kotlin ->
      tasks.setTextSize(resources.getDimension(R.dimen._**ssp)
      

      希望这可以帮助! :)

      【讨论】:

        【解决方案3】:

        在科特林我是这样解决的

        headerTimer.layoutParams.height = resources.getDimension(com.intuit.sdp.R.dimen._180sdp).toInt()
        

        它工作正常

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多