Android: 设置中文字体效果的一些方法
开发应用程序使用最多的还是String(字符串),下面我们就如何显示String详细的说明。
引用Android SDK中显示String的函数,列举如下:
drawText(String text, int start, int end, float x, float y, Paint paint) | Draw the text, with origin at (x,y), using the specified paint. |
void drawText(char[] text, int index, int count, float x, float y, Paint paint) | Draw the text, with origin at (x,y), using the specified paint. |
void drawText(String text, float x, float y, Paint paint) | Draw the text, with origin at (x,y), using the specified paint. |
void drawText(CharSequence text, int start, int end, float x, float y, Paint paint) | Draw the specified range of text, specified by start/end, with its origin at (x,y), in the specified Paint. |
void drawTextOnPath(String text, Path path, float hOffset, float vOffset, Paint paint) | Draw the text, with origin at (x,y), using the specified paint, along the specified path. |
void drawTextOnPath(char[] text, int index, int count, Path path, float hOffset, float vOffset, Paint paint) | Draw the text, with origin at (x,y), using the specified paint, along the specified path. |
在所有的函数中,参数主要分为3部分:字符串(String、char、CharSequence),长度(start—end、index—count),如何显示String(paint)。前2个参数一看就明白,这里我们主要介绍第3个参数Paint paint。
首先,什么是Paint?
引用Android SDK 中的说明,Paint类包含样式和颜有关如何绘制几何形状,文本和位图的信息 。Canvas是一块画布,具体的文本和位图如何显示,这就是在Paint类中定义了。
然后,Paint有哪些功能?
在了解Paint的功能前,我们按照Word文档的功能,说明下对String的显示,有影响的因素有哪些?字体、大小(TextSize)、颜 (TextColor)、对齐方式(TextAlign)、粗体(Bold)、斜体(Italic)、下划线(Underline)等,下面我们就按照这 些影响String显示的因素,结合Android SDK中Paint类的介绍,详细说明Paint类有哪些功能。
在Android SDK中使用Typeface类来定义字体,Typeface类:指定字体和字体的固有风格,用于Paint,类似于Paint的其他 textSize,textSkewX,textScaleX一样,来说明如何
绘制文本。归纳起来,Typeface类主要包括以下3个方面:
1. 一些常量的定义(BOLD,BOLD_ITALIC,ITALIC,NORMAL)
2. 常量字体的定义:
字体(Typeface) | 说明 |
DEFAULT | The default NORMAL typeface object |
DEFAULT_BOLD | The default BOLD typeface object. |
MONOSPACE | The NORMAL style of the default monospace typeface. |
SANS_SERIF | The NORMAL style of the default sans serif typeface. |
SERIF | textstyleThe NORMAL style of the default serif typeface. |
3. 这些常量字体,在程序中是可以直接使用的,例如:Typeface. SERIF
4. 函数:创建字体(Create()),获取字体属性(getStyle()、isBold()、isItalic());
Typeface类不仅定义了字体,还包括粗体(Bold)、斜体(Italic)。
Typeface类不仅定义了字体,还包括粗体(Bold)、斜体(Italic)。
其它对显示String有影响的因素,我们都可以在Paint类中到它们的影子,如下:
类型 | 功能 | Paint中的相关操作 |
Typeface | 字体 | Typeface setTypeface(Typeface typeface) Typeface getTypeface() |
class Paint.Align | 对齐方式 | setTextAlign(Paint.Align align) Paint.AligngetTextAlign() |
字体大小 | intgetTextSize() setTextSize(float textSize) | |
颜 | setColor(int color) intgetColor() | |
下划线 | boolean isUnderlineText() setUnderlineText(booleanunderlineText) | |
看了这些,想必大家对Paint类也有些基本的了解,实际上在Paint类中还有其他一些功能,比如说Alpha、Dither等,这些也只有大家去Android SDK中仔细阅读了,由于篇幅有限,就不在此详细说明。
最后,如何使用Paint显示String?
实际上,在前面的一些篇幅中的例子程序中都使用了Paint类,在Android画图学习总结(二)——Bitmap 例子的基础上修改下,说明如何使用Paint,如下:
public void onDraw(Canvas canvas)
{
Draw(canvas);
Paint p = new Paint();
String familyName = “宋体”;
Typeface font = ate(familyName,Typeface.BOLD);
p.setColor(Color.RED);
p.setTypeface(font);
public void onDraw(Canvas canvas)
{
Draw(canvas);
Paint p = new Paint();
String familyName = “宋体”;
Typeface font = ate(familyName,Typeface.BOLD);
p.setColor(Color.RED);
p.setTypeface(font);
p.setTextSize(22);
canvas.drawText(mstrTitle,0,100,p);
}
程序运行后,界面显示如下:
canvas.drawText(mstrTitle,0,100,p);
}
程序运行后,界面显示如下:
总结说明
String是我们开发应用程序最经常处理的数据,如何显示String是开发应用程序最基本的要求,在这里我只是抛砖引玉下,简要介绍了Paint类,更加深入的学习请大家到Android SDK中去详细阅读吧!
-
----------------------------------------------------------------
01./*
02. * 在xml文件中使用android:textStyle="bold" 可以将英文设置成粗体,但是不能将中文设置成粗体,
03. * 将中文设置成粗体的方法是: TextViewtv = (TextView)findViewById(R.id.TextView01);
04. * TextPainttp = tv.getPaint(); tp.setFakeBoldText(true);
05. * 用Html来格式化字符,例如要实现如下的显示:
06. *
07. * "这只是一个测试字符串,测试黑体字、斜体字、下划线、红字的显示。"
08. *
09. * 可以将字符串格式化成Html格式,如下: Java代码
10. *
11. * 1. String source =
12. * "这只是一个测试字符串,测试<b>黑体字</b>、<i>斜体字</i>、<u>下划 线</u>、
02. * 在xml文件中使用android:textStyle="bold" 可以将英文设置成粗体,但是不能将中文设置成粗体,
03. * 将中文设置成粗体的方法是: TextViewtv = (TextView)findViewById(R.id.TextView01);
04. * TextPainttp = tv.getPaint(); tp.setFakeBoldText(true);
05. * 用Html来格式化字符,例如要实现如下的显示:
06. *
07. * "这只是一个测试字符串,测试黑体字、斜体字、下划线、红字的显示。"
08. *
09. * 可以将字符串格式化成Html格式,如下: Java代码
10. *
11. * 1. String source =
12. * "这只是一个测试字符串,测试<b>黑体字</b>、<i>斜体字</i>、<u>下划 线</u>、
<font color='red'>红字</font>的显示。"
13. * * String source =
14. * "这只是一个测试字符串,测试<b>黑体字</b>、<i>斜体字</i>、<u>下划 线</u>、<font color='red'>红字</font>的显示。"
15. * 然后调用TextView里面setText函数即可 Java代码
16. *
17. * 1. textView.setText(Html.fromHtml(source));
18. */
13. * * String source =
14. * "这只是一个测试字符串,测试<b>黑体字</b>、<i>斜体字</i>、<u>下划 线</u>、<font color='red'>红字</font>的显示。"
15. * 然后调用TextView里面setText函数即可 Java代码
16. *
17. * 1. textView.setText(Html.fromHtml(source));
18. */
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论