【问题标题】:Access name of custom style used for Android TextView用于 Android TextView 的自定义样式的访问名称
【发布时间】:2012-04-20 16:07:25
【问题描述】:

我们正在为我们的 Android 应用使用自定义样式,同时尝试使用自定义字体。由于我无法通过 xml 设置自定义字体,我们定义了 textview 的子类并在那里设置字体。但是,如果能够通过 xml 调整字体(而不是其样式,即常规、粗体、斜体...),那就太好了。

基本想法是查看我们拥有的样式并利用其名称来确定要使用的字体。

样式可能如下所示:

<style name="MyFont">
  <item name="android:textSize">12sp</item>
  <item name="android:textStyle">normal</item>
</style>
<style name="MyFont.Font1"></style>
<style name="MyFont.Font2"></style>

TextView 本身可以是

<com.project.some.OurTextView 
  style="@style/MyFont.Font1" 
  android:text="@string/hello" />

如果在com.project.some.OurTextView 中我可以发现样式名称实际上是Font1Font2,我将能够切换大小写并使用基于此的字体。

那么,问题仍然存在:是否可以访问样式名称?

一如既往,我们非常感谢您的帮助!干杯!

【问题讨论】:

    标签: android fonts styles typeface


    【解决方案1】:
    <style name="MyFont" parent="android:Theme">
      <item name="android:textSize">12sp</item>
      <item name="android:textStyle">normal</item>
    </style>
    <style name="MyFont.Font1"></style>
    <style name="MyFont.Font2"></style>
    

    试试上面的 style.xml 文件,每个样式元素都必须有父标签。 参考这个LINK

    【讨论】:

    • 嗯,其实这不是我要问的。还有,你错了。父级是通过点从我的自定义样式继承来定义的。我只是忘了给“根”元素一个父级。按照您自己的链接,您可以阅读:“注意:这种通过将名称链接在一起的继承技术仅适用于由您自己的资源定义的样式。您不能以这种方式继承 Android 内置样式。要引用内置样式,比如TextAppearance,必须使用父属性。”
    • 感谢您的编辑......就像它是正确的一样。不过,您知道如何在实际的类文件中发现样式的名称是“Font1”吗?
    猜你喜欢
    • 2018-12-22
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 2010-10-27
    • 2019-06-19
    • 1970-01-01
    相关资源
    最近更新 更多