首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Typeface.ITALIC不使用Galaxy 2

Typeface.ITALIC不使用Galaxy 2
EN

Stack Overflow用户
提问于 2012-11-28 01:23:09
回答 2查看 2.7K关注 0票数 11

我正在制作一个应用程序,有时我希望将文本视图的字体更改为斜体,这取决于要显示的数据。

在我的星系Nexus上,这只是一个简单的例子

代码语言:javascript
复制
textView.setTypeface(font, iWantItalics ? Typeface.ITALIC : Typeface.NORMAL);

而且效果很好。

问题是我要测试一个新的Galaxy Note II .不,没有斜体字。

阅读Samsung devices supporting setTypeface(Typeface.Italic)?时,我觉得这是Note的安卓版本上的一个bug,所以Roboto字体没有斜体。我已经尝试过关于这个线程的所有建议,以及其他类似的建议(Typeface.defaultFromStyle(Typeface.ITALIC)Typeface.create(null, Typeface.ITALIC)等)。没有运气。

我的问题是,使用这个线程的人是在assets目录中复制Roboto并从那里创建字体,但是在他们的手机中使用另一种默认字体的人呢?我不想强迫Roboto在他们身上,更糟糕的是,当字体是普通的,而Roboto斜体的时候,我也不想有其他字体。

有谁能给我个主意吗?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-19 15:25:58

作为解决此缺陷的方法,您可以以这种方式设置文本斜体(这似乎适用于损坏的三星设备):

代码语言:javascript
复制
textView.setText(setTextStyleItalic(textView.getText());

你需要这样的方法:

代码语言:javascript
复制
public static CharSequence setTextStyleItalic(CharSequence text) {
    final StyleSpan style = new StyleSpan(Typeface.ITALIC);
    final SpannableString str = new SpannableString(text);
    str.setSpan(style, 0, text.length(), 0);
    return str;
}
票数 14
EN

Stack Overflow用户

发布于 2013-05-29 13:05:06

另一个简单的解决办法是这样做:

代码语言:javascript
复制
myTextView.setText(Html.fromHtml("<i>" + myString + "</i>"));
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13596245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档