Paint.setTypeface不适用于斜体或我正在以错误的方式做某事.我可以创建普通,粗体,等宽和衬线文本,但我不能创建斜体文本.它总是看起来很正常(或者在粗体斜体的情况下,它看起来很大胆).
//This will appear monospace
paint.setTypeface(Typeface.MONOSPACE);
canvas.drawText("foo", 10, 10, paint);
//This will appear serif
paint.setTypeface(Typeface.SERIF);
canvas.drawText("foo", 10, 10, paint);
//This will appear bold
paint.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
canvas.drawText("foo", 10, 10, paint);
//This will NOT appear italic <=== PROBLEM
paint.setTypeface(Typeface.defaultFromStyle(Typeface.ITALIC));
canvas.drawText("foo", 10, 10, paint);
// This isn't working either <=== PROBLEM
paint.setTypeface(Typeface.create(Typeface.SANS_SERIF, Typeface.ITALIC));
Run Code Online (Sandbox Code Playgroud)
所以现在问题是:有一个已知的解决方法吗?我的简单目标是用斜体绘制一些单词......
我不知道为什么,但我的应用程序没有在三星Galaxy Tab 2上以斜体显示TextView(例如,它在Nexus 7平板电脑上正常工作).
我的代码:
<style name="MyTheme.GeneralRedDate">
<item name="android:textColor">@color/red</item>
<item name="android:textSize">15sp</item>
<item name="android:textStyle">bold|italic</item>
</style>
Run Code Online (Sandbox Code Playgroud)
当然我已经尝试过斜体而不是粗体斜体,它也不起作用.
编辑 看来这个线程是一样的:三星设备支持setTypeface(Typeface.Italic)?
我尝试在textview中显示斜体文本.我使用方法TypeFace.defaultFromstyle(TypeFace.ITALIC),但它不起作用,文本的样式不设置为斜体.如果我在返回defaultFromstyle()时调用getStyle()方法,则返回0.任何想法?