0

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

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

绿线内的内容是马拉雅拉姆语,这很好。请求帮助...

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")));`
4

3 回答 3

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);
于 2013-01-03T08:31:44.490 回答
0

正如@njzk2 所说,您可以尝试同时支持这两种语言,

至于为文本视图设置字体,请查看这个StackOverFlow 问题。

希望能帮助到你。

于 2013-01-02T14:13:38.327 回答
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 的定义静态方法,而不是一次又一次地创建字体。通过这种方式,您可以减少 Typeface 对象的数量,并且可以始终保持唯一的字体。

于 2013-01-03T07:11:15.173 回答