前面的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。
引用Android SDK 中的说明,Paint类包含样式和颜色有关如何绘制几何形状,文本和位图的信息。Canvas是一块画布,具体的文本和位图如何显示,这就是在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个方面:
字体(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
其它对显示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类,在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中去详细阅读吧!