【问题标题】:How size units in Android are applied?Android 中的尺寸单位如何应用?
【发布时间】:2019-07-05 09:27:56
【问题描述】:

在 axml 文件中添加视图时,可以简单地指定视图属性的大小和单位,例如:

<TextView
    android:TextSize = "10sp"
    android:layout_marginTop = "10dp" />

但是,当以编程方式应用尺寸时,尺寸 sp 应用的单位是什么? DP?像素?

TextView tv = new TextView();
tv.TextSize = 10;

另外,如何转换单位?

【问题讨论】:

  • 这个答案也许可以帮助你。问题类似This link
  • 我知道如何以编程方式设置它,但我不知道它背后的机制。如果我能就该主题提供完整详细的答案,那就太好了。
  • @FeryAndriani 谢谢你的时间!!!

标签: android android-studio xamarin view units-of-measurement


【解决方案1】:

spTextView.TextSize 的默认值:

将默认文本大小设置为给定值,解释为“缩放像素”单位。此大小根据当前密度和用户字体大小偏好进行调整。`

如果您需要不同的单位类型 (ComplexUnitType),请使用 SetTextSize 方法:

textview.SetTextSize(ComplexUnitType.Px, 20);

【讨论】:

  • 你也发同样的:-@
  • 非常感谢!如果我的帖子不错,您可以点赞我的帖子,这样我可以更快地进步吗?
【解决方案2】:

一位朋友刚刚回答我,默认情况下,Android 使用“sp”作为文本大小,使用“px”作为视图大小,但是可以像这样转换单位:

TextView tv = new TextView();
tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, 10); // Sets text in px (Pixel).
tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 10); // Sets text in dip (Device Independent Pixels).
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10); // Sets text in sp (Scaled Pixel).
tv.setTextSize(TypedValue.COMPLEX_UNIT_PT, 10); // Sets text in pt (Points).
tv.setTextSize(TypedValue.COMPLEX_UNIT_IN, 10); // Sets text in in (inches).
tv.setTextSize(TypedValue.COMPLEX_UNIT_MM, 10); // Sets text in mm (millimeters).
``

【讨论】:

    猜你喜欢
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多