android - 支持 setTypeface(Typeface.Italic) 的三星设备?

标签 android typeface italic

我在应用程序中使用自定义 View 组件,通过 Paint/Canvas 在屏幕上绘制一些文本。

我正在使用以下代码(在我调用 canvas.drawText() 之前)将我的文本设为斜体:

mPaintText.setTypeface(Typeface.defaultFromStyle(Typeface.ITALIC));

这适用于 Samsung Galaxy Nexus。但是在 Samsung Epic 4g (galaxy S)、Samsung Epic Touch (Galaxy SII) 和 Samsung Transform ultra 上,我的文字仍然是非斜体。

有谁知道为什么其中一些三星设备不支持以这种方式设置斜体文本?我知道这些设备能够呈现斜体文本,因为如果我有一个 TextView,我可以使用其中之一

tv.setText(Html.fromHtml("<i>sometext</i>");

在java或

android:textStyle="italic"

在 layout.xml 中,我的文本显示为斜体。

有谁知道我可以设置 Canvas 的 drawText() 方法来绘制可能在这些设备上工作的斜体文本的另一种方法?

编辑:

这是我尝试过的一些方法的列表,之后的评论中会给出它们的结果。事实证明,SERIF 似乎是它唯一适用的字体。

mPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.ITALIC) //Nothing
mPaint.setTypeface(Typeface.create(Typeface.DEFAULT_BOLD, Typeface.ITALIC) //Nothing
mPaint.setTypeface(Typeface.create(Typeface.SERIF, Typeface.ITALIC) //omg it is italic...But serifs look gross.
mPaint.setTypeface(Typeface.create(Typeface.SANS_SERIF, Typeface.ITALIC) //Nothing
mPaint.setTypeface(Typeface.create(Typeface.MONOSPACE, Typeface.ITALIC) //Changes font, but still no italic.
mPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD_ITALIC) //Bold but no italic

再次编辑:为了实现此功能,我最终将 roboto 字体的斜体版本添加到我的 Assets 文件夹并将其作为字体应用。如果有人找到一种方法让它工作而不用这种方式添加它,我仍然会感兴趣。

最佳答案

您的三星设备可能没有安装所需字体的原生斜体版本。您可能必须强制系统综合创建斜体样式字体。尝试:

tv.setTypeface(Typeface.defaultFromStyle(Typeface.ITALIC), Typeface.ITALIC);

编辑

代替 defaultFromStyle,尝试使用 Typeface.create(Typeface family, int style)(已记录 here)。

关于android - 支持 setTypeface(Typeface.Italic) 的三星设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10420077/

相关文章:

android - 法国是否支持 paypal rest-api 进行实时交易 paypal-android-sdk

android - onDowngrade() 方法尚未被调用

java - AWT Graphics DrawString 导致斜体 - 倾斜字体的宽度不正确

android - 如何在 Android canvas 上绘制斜体文字?

android - 为 Activity 中的所有 TextView 设置字体?

Android ListView 斜体

java - ActionBarDrawerToggle() 图标无法设置为 Android SDK 5 中的 ActionBar

android - 在 ICS 的 webViewClient 中播放 SWF 文件?

Android Studio 记录器 TextView TypeFace 样式 0

android - Typeface.createFromAsset() 是否缓存?