Textview内容来自Webservice的Textview中的不同字体

时间:2013-01-02 14:03:44

标签: android

我的应用程序是一个malayalam新闻门户网站,在那个应用程序中,我使用的是MLW-Panini.ttf,这是一种马拉雅拉姆字体。
问题是在一个textview本身我必须同时显示马拉雅拉姆语和英文文本。

如果我使用该字体,则无法正确显示英文内容。
如果内容仅在malayalam中,则可以正常工作。考虑附加图像,红线内的内容应该是英文的,但是在马拉雅拉姆语中。

绿线内的内容在malayalam中,这很好。请求帮助...

TextView tv = new TextView(NewsDetail.this);
Typeface font1  = Typeface.createFromAsset(getAssets(),"fonts/MLW-Panini.ttf");
tv.setTypeface(font2);
tv.setText(Html.fromHtml(arrList.get(i).get("news")));`

3 个答案:

答案 0 :(得分:0)

正如@ n​​jzk2所说,你可以尝试支持这两种语言,

至于设置文本视图的字体,请查看this StackOverFlow问题。

希望它有所帮助。

答案 1 :(得分:0)

使用以下代码:

对于您的第一个文本视图:

TextView tv = new TextView(NewsDetail.this);
Typeface font1  = Typeface.createFromAsset(getAssets(),"fonts/MLW-Panini.ttf");
tv.setTypeface(font1);
tv.setText(Html.fromHtml(arrList.get(i).get("news")));

对于您的第二文本视图:

TextView tv1 = new TextView(NewsDetail.this);
Typeface font2  = Typeface.createFromAsset(getAssets(),"fonts/secondfont.ttf");
tv.setTypeface(font2);
tv.setText(Html.fromHtml(arrList.get(i).get("news")));

不是一次又一次地创建Typeface,而是可以使用define static方法返回Utility Class中的Typeface。通过这种方式,您可以减少字体对象的数量,并且可以始终保持唯一的字体。

答案 2 :(得分:0)

你可以这样做。

TextView tv = new TextView(NewsDetail.this);
Typeface font1  = Typeface.createFromAsset(getAssets(),"fonts/MLW-Panini.ttf");
tv.setTypeface(font1);

String text = "malayalam_text english_text";
Spannable s  = new SpannableString(text);
s.setSpan(new TypefaceSpan("sans"), "malayalam_text ".length(), "malayalam_text english_text".length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(s);