问题描述
我目前正在开发一个支持 RTL 语言(即阿拉伯语)的应用程序,我正在使用自定义书法字体来显示 99 个真主的名字。字体已经带有颜色(白色和黄色),如下所示:
我还在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,应用设置为深色主题:
- galaxy Note 10、Android 11 - API 30,应用设置为浅色主题:
如您所见,字体颜色在浅色主题中没有改变到深蓝色,在 galaxy Note 10 的深色主题中也没有白色,它总是显示字体的黄色部分。
此外,即使我在 TextView 标签上添加 android:textColor="@color/blue"
,问题仍然存在。发生这种情况仅使用此字体 android:fontFamily="@font/allah_names_white"
,您还可以看到字体未在卡片上居中,并且填充不会影响它,但让我们忽略它们。对我来说,我尝试过很多失败的事情,问题与字体有关。
但我只想知道为什么字体在不同设备上的解释不同,以及为什么 textColor 属性只在新的 android 设备中不影响那些自定义彩色字体?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)