安卓canvas
2016-04-20 16:47
309 查看
canvas图层与屏幕的关系
屏幕 Canvas图层--> Canvas 画图 --> 图层覆盖在屏幕上显示 -->图层清理图层上的元素 ^ | | | ------------------------------------ 在Canvas与屏幕合成时,超出屏幕范围的图像是不会显示出来的。 Canvas图层一般 原点坐标为手机的左上角为(0,0),横为x轴,竖为y轴
基本方法:
rotate(degress,px,py)
对图层旋转:对xy轴旋转。(pxpy默认为图层的原点)
scale
缩放x/y坐标系密度
skew 倾斜x/y轴的方向,参数为倾斜角度的tan值.改变x/y轴的方向。
不再是单一的垂直xy轴。
translate(dx,dy)
对图层移动,改变原坐标。dx,dy为改变的差值
clip 裁剪
不可逆操作
save / restore
保存:图层入栈 恢复:图层出栈(赋值给当前的canvas)
drawText(String text, float x, float y, Paint paint)
y为文字基线的起点纵坐标,不是文字的左上角y坐标。 x代表 与绘制的文字相对的x坐标(左中右) Paint::setTextAlign(Align align); Align的取值为:Panit.Align.LEFT,Paint.Align.CENTER,Paint.Align.RIGHT Panit.Align.LEFT :坐标x在文字的左边(默认).zzzz Paint.Align.CENTER:坐标在文字的中间 zz.zz Paint.Align.RIGHT:坐标x在文字的右边 zzzz. 在paint中设置字体大小 setTextSize() 以px为单位 所绘文字宽度、高度和最小矩形获取: 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); //要配置好画笔的TextSize()
定点写字:
protected void onDraw(Canvas canvas) { super.onDraw(canvas); //主要计算出y坐标 String text = "harvic\'s blog"; int top = 200; int baseLineX = 0 ; //设置paint Paint paint = new Paint(); paint.setTextSize(120); //事先确定字体大小以px为单位 paint.setTextAlign(Paint.Align.LEFT); //画top线 paint.setColor(Color.YELLOW); canvas.drawLine(baseLineX, top, 3000, top, paint); //计算出baseLine位置 Paint.FontMetricsInt fm = paint.getFontMetricsInt(); int baseLineY = top - fm.top; //画基线 paint.setColor(Color.RED); canvas.drawLine(baseLineX, baseLineY, 3000, baseLineY, paint); //写文字 paint.setColor(Color.GREEN); canvas.drawText(text, baseLineX, baseLineY, paint); }
参考: /article/3594531.html
相关文章推荐
- JavaScript格式化时间
- iis-
- 解码端的buffer
- 同步关键字synchronized
- python学习笔记-Day022 - django ORM操作
- beginUpdates和endUpdates 实现UITableView的动画块 4000
- 在jsp页面修改XML配置文件里的参数值
- MYSQL 5.7 并行复制实现原理与调优
- LeetCode *** 47. Permutations II (Backtracking )
- Golang中的闭包
- 屏幕适配 简单懂
- 同步关键字synchronized
- JS_检索/选择元素的各种方式
- Android 使用DatePicker以及TimePicker显示当前日期和时间
- (LeetCode 130) Surrounded Regions(BFS)
- Spring之config.xml配置
- 减少设置UI出错率的方法,设置UI的一些列属性在设置内容之前完成
- Appendix: Is there a simple algorithm for intelligence?
- css的位置引起的ie下的“无样式内容的闪烁FOUC”,和非ie的“白屏”
- C#静态方法的使用