任务知识总结之绘制相关

在android系统中 canvas主要用于处理显示内容的绘制,自定义View时我们一般都是在View的onDraw中接收到系统传给我们的canvas,然后将我们需要展示的内容绘制到该canvas上,最后系统会渲染该canvas上的内容到屏幕上。那么
canvas是什么:canvas其实是用于绘制的工具,不完全是一个画布,当我们给canvas设置画布的时候(比如bitmap),该bitmap就是一个画布,而canvas主要负责画板相关的工作(该画板是没有大小限制的,可以理解为透明的无限的平面),canvas默认坐标原点为左上角(0,0)。
canvas能做什么:canvas能帮我们拿到我们想要的内容,通过canvas可以将内容绘制到我们指定的画布上
canvas怎么做:
canvas提供很多绘制api,例如drawLine,drawPath等,也提供了一些操作画板的相关功能,如下:
translate:平移canvas,这实际上是一个平移坐标的操作,当我们调用该api时,实际上是移动了canvas上原点,该操作只会影响之后的绘制,之前我们绘制的内容不会被影响,
scale:缩放canvas,由于画板是无线大小的透明的平面,所以实际上并不会被缩放,真正被缩放的是坐标。

save,restore,saveLayer,restoreToCount
这个api是新建画板和合并画板的,其实感觉理解为层会更加合适,
save 和saveLayer用于在原来的画板上再新建一个透明的画板,之后的操作都是在新的画板上绘制,绘制的区域会覆盖下面的层当中的内容,saveLayer中可以指定保存新建层中的相关数据项,全部保存时比较好内存;
restore和restoreToCount用于合并层,这个操作会很耗时

View中onKeyDown事件未响应====》当前View没有获得焦点
Bitmap:5.0之前—–BitmapFactory加载图片是native层去加载,Bitmap.createBitmap是在堆里面去加载。
Paint中PorterDuffXfermode的16中模式实际上并不是和官网效果图匹配的,详情可以看这个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值