一.硬件加速

1.好处:提高了Android系统显示和刷新的速度。

2.原理:实际上是使用OpenGL的相关函数来绘制的。

3.缺点:

①.兼容性问题。存在OpenGL不能完全支持原始绘制函数的问题。

②.内存消耗问题。使用OpenGL指令,系统需要把与OpenGL相关的包加载到内存中来。

③.电量消耗问题。多一个部件。

4.禁用GPU硬件加速四种方法:Application、Activity、Window、View四个层级。

 

二.文字

1.基线:基线是字母四线格中的第三条线。

2.文字位置:x坐标和基线y坐标确定文字位置就确定了。

3.paint.setAlign:x坐标在文字左边,中间,右边。

4.绘图四线格

Paint基本使用_基线

ascent和descent:字符应当的最高(最低)高度所在线。

top和bottom:可绘制的最高(最低)高度所在线。

5.FontMetrics

ascent线y坐标=baseline线的y坐标+FontMetric.ascent 其他三个值获取同理。

6.常用函数

①.字符串高度获取:

Paint.FontMetricsInt fm = paint.getFontMetricsInt();
int top = baseLineY + fm.top;
int bottom = baseLineY + fm.bottom;
//所占区域的高度
int height = bottom - top;

②.字符串宽度获取:

int width = paint.measureText(String text);//直接调用此方法可以获取宽度。

③.最小矩形位置:

/**
     * @param text string to measure and return its bounds
     * @param start index of the first char in the string to measure
     * @param end 1 past the last char in the string to measure
     * @param bounds returns the unioned bounds of all the text. Must be allocated by the caller   获取的最小矩形
     */
    public void getTextBounds(String text, int start, int end, Rect bounds);

 

三.Paint常用函数

Paint基本函数设置

reset(); 重置画笔
setColor(int color); 设置画笔颜色
setARGB(int a,int r,int g,int b); 设置画笔颜色
setAlpha(int a); 设置画笔透明度
setStyle(Paint.Style style); 设置画笔样式 Style.FILL:填充内部 Style.FILL_AND_STROKE:填充内部和描边 Style.STROKE:描边
setStrokeWidth(float width); 设置画笔宽度
setAntiAlias(boolean a); 设置画笔是否抗锯齿
setPathEffect(PathEffect effect); 设置路径样式,取值类型派生自PathEffect的子类
setDither(boolean dither); 设置绘制图像的抗抖动效果

字体相关函数

setTextSize(float textSize); 设置文字大小
setFakeBoldText(boolean fakeBoldText); 设置是否为粗体
setStrikeThruText(boolean strikeThruText); 设置带有删除线效果
setUnderlineText(boolean underlineText); 设置带有下划线
setTextAlign(Paint.Align align); 设置开始绘图的位置
setTextScaleX(float scaleX); 设置水平拉伸
setTypeSkewX(float skewX); 设置水平倾斜度
setTypeface(Typeface typeface); 设置字体样式