一.硬件加速
1.好处:提高了Android系统显示和刷新的速度。
2.原理:实际上是使用OpenGL的相关函数来绘制的。
3.缺点:
①.兼容性问题。存在OpenGL不能完全支持原始绘制函数的问题。
②.内存消耗问题。使用OpenGL指令,系统需要把与OpenGL相关的包加载到内存中来。
③.电量消耗问题。多一个部件。
4.禁用GPU硬件加速四种方法:Application、Activity、Window、View四个层级。
二.文字
1.基线:基线是字母四线格中的第三条线。
2.文字位置:x坐标和基线y坐标确定文字位置就确定了。
3.paint.setAlign:x坐标在文字左边,中间,右边。
4.绘图四线格
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); 设置字体样式