为什么自定义字体 TextView 颜色不适用于所有设备API 级别?

问题描述

我目前正在开发一个支持 RTL 语言(即阿拉伯语)的应用程序,我正在使用自定义书法字体来显示 99 个真主的名字。字体已经带有颜色(白色和黄色),如下所示:

enter image description here

我还在styles.xml文件中创建了两个样式,这样我就可以让用户在深色和浅色主题之间进行选择,更改背景图片和其他属性,最重要的是<item name="android:textColor">@color/white</item>我设置了白色用于深色主题深蓝色用于浅色主题

我使用带有 GridLayoutManager 的 RecyclerView 来显示元素列表。 回收器视图项中的 textView 定义如下:

<TextView
            android:id="@+id/names99"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="1"
            android:gravity="center_horizontal"
            android:textDirection="rtl"
            android:layout_centerHorizontal="true"
            android:includeFontPadding="false"
            android:linespacingExtra="0dp"
            android:fontFamily="@font/allah_names_white"
            android:textSize="50sp"/>

我使用相同的代码在两台设备上运行该应用程序,结果如下:

- 华为 P9,Android Nougat 7.0 - API 24,应用设置为深色主题

enter image description here

- galaxy Note 10、Android 11 - API 30,应用设置为浅色主题

enter image description here

如您所见,字体颜色在浅色主题中没有改变到深蓝色,在 galaxy Note 10 的深色主题中也没有白色,它总是显示字体的黄色部分。

此外,即使我在 TextView 标签添加 android:textColor="@color/blue",问题仍然存在。发生这种情况仅使用此字体 android:fontFamily="@font/allah_names_white"您还可以看到字体未在卡片上居中,并且填充不会影响它,但让我们忽略它们。对我来说,我尝试过很多失败的事情,问题与字体有关

但我只想知道为什么字体在不同设备上的解释不同,以及为什么 textColor 属性只在新的 android 设备中不影响那些自定义彩色字体?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...