public class MainActivity extends AppCompatActivity {
TextView hi;
Typeface ty;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
hi = (TextView) findViewById(R.id.hi);
ty = Typeface.createFromAsset( getAssets() , "fonts/Spirax-Regular.ttf");
hi.setTypeface(ty);
}
}
这段代码对我很有用。
我的问题是,如果我的应用程序支持两种语言(阿拉伯语和英语),有没有办法在同一文本中添加两种类型的字体?一个用于阿拉伯语文本,另一个用于英语文本?
答案 0 :(得分:0)
试试这个
if(Locale.getDefault().getISO3Language().equals("ar")){
//LANGUAGE IS ARABIC
text.setTypeface(arabicTypeface);
}
else{
//LANGUAGE IS ENGLISH
text.setTypeface(englishTypeface);
}
答案 1 :(得分:0)
这不是正确的方法,但这将解决您的问题
textView.setText(Html.fromHtml(text));
此类示例仅用于更改文本字体。
答案 2 :(得分:0)
解决方案:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
hi = (TextView) findViewById(R.id.tvTime);
setContentView(R.layout.activity_main);
if(getResources().getConfiguration().locale.getLanguage().equals("ar"))
hi.setTypeface(Typeface.createFromAsset( getAssets() , "YOUR ARABIC .TTF FILE HERE"));
else if(getResources().getConfiguration().locale.getLanguage().equals("en"))
hi.setTypeface(Typeface.createFromAsset( getAssets() , "YOUR ENGLISH .TTF FILE HERE"));
}