前面的Android画图学习总结的系列中,我们分别学习了Bitmap、Drawable、Aniamtion,除了这些画图元素之外,开发应用程序使用最多的还是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个方面: - 一些常量的定义(BOLD,BOLD_ITALIC,ITALIC,NORMAL)
- 常量字体的定义:
字体(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 | The NORMAL style of the default serif typeface. | 这些常量字体,在程序中是可以直接使用的,例如:Typeface. SERIF - 函数:创建字体(Create()),获取字体属性(getStyle()、isBold()、isItalic());
Typeface类不仅定义了字体,还包括粗体(Bold)、斜体(Italic)。 其它对显示String有影响的因素,我们都可以在Paint类中找到它们的影子,如下: 类型 | 功能 | Paint中的相关操作 | Typeface | 字体 | Typeface setTypeface(Typeface typeface) Typeface getTypeface() | class Paint.Align | 对齐方式 | setTextAlign(Paint.Align align) Paint.Align getTextAlign() | | 字体大小 | int getTextSize() setTextSize(float textSize) | | 颜色 | setColor(int color) int getColor() | | 下划线 | boolean isUnderlineText() setUnderlineText(boolean underlineText) | 看了这些,想必大家对Paint类也有些基本的了解,实际上在Paint类中还有其他一些功能,比如说Alpha、Dither等,这些也只有大家去Android SDK中仔细阅读了,由于篇幅有限,就不在此详细说明。 最后,如何使用Paint显示String? 实际上,在前面的一些篇幅中的例子程序中都使用了Paint类,在Android画图学习总结(二)——Bitmap例子的基础上修改下,说明如何使用Paint,如下: public void onDraw(Canvas canvas) { super.onDraw(canvas); Paint p = new Paint(); String familyName = “宋体”; Typeface font = Typeface.create(familyName,Typeface.BOLD); p.setColor(Color.RED); p.setTypeface(font); p.setTextSize(22); canvas.drawText(mstrTitle,0,100,p); } 程序运行后,界面显示如下: 总结说明 String是我们开发应用程序最经常处理的数据,如何显示String是开发应用程序最基本的要求,在这里我只是抛砖引玉下,简要介绍了Paint类,更加深入的学习请大家到Android SDK中去详细阅读吧! http://hi.baidu.com/lfcaolibin/blog/item/c6937ad7d9e4202407088ba6.html |