我有一个TextView
,有两种语言:阿拉伯语和英语。
我有两种不同的字体,arabic.ttf
和english.ttf
。
我想将这两种字体应用于单个TextView,它应该根据语言更改字体。
对于阿拉伯语,只应用arabic.ttf,并且应该应用英语english.ttf。
问题是它们都在同一个TextView中,因此我无法应用两种字体。
我查看了SpannableStringBuilder
的示例,但没有帮助。
请提供工作代码。
答案 0 :(得分:2)
实现目标的最简单方法:
创建2个文件夹:
将英文字体文件放在-en
文件夹和阿拉伯语字体文件中-ar
文件夹中。
重命名文件,以便在每个文件夹中具有相同的名称,例如
textViewFont.ttf
在TextView中添加android:fontFamily="@font/textViewFont"
这样,当您的应用程序打开时,XML框架将根据当前的Locale
加载字体答案 1 :(得分:0)
您必须将自定义字体字体扩展到TypeFaceSpan,并使用SpannableString来帮助您修复此问题。链接https://stackoverflow.com/a/9619371/8208341帮助了我。
还将textview文本拆分为字符串数组,然后循环以应用上面创建的方法。
答案 2 :(得分:0)
如何在style-ar.xml
中创建新样式values-ar
<style name="my_arbic_style">
<item name="android:textSize">18sp</item>
<item name="android:fontFamily">sans-serif-thin</item>
</style>
并在您的布局中:
<TextView
android:text="khaled djeriou"
android:textColor="@color/white"
android:gravity="center_vertical`
app:theme="@style/my_arbic_style"/>
我希望这项工作