android之绘制相关类

1、surface类,该类用于描述一个绘制平面,其内部仅仅包含了该平面的大小、在屏幕的位置以及一段屏幕缓冲内存区。但在java端,不能直接访问这段内存,同时也不能通过该类直接设置该平面的大小和位置,只能通过surfaceHolder类。

    一般情况下Surface是有viewRoot类创建,但sdk没有开发接口,所以开发者无法通过ViewRoot直接创建Surface,而是通过surfaceView类间接创建

2、Canvas:绘制各种函数,如drawColor()、drawLines()....因为绘制的结果实际上是给这段内存地址中填充不同的像素。内存分为两种,一种是普通内存,一种是屏幕缓存区内存,屏幕缓存内存是实时在界面上可见的,只要canvas绘制后就能在屏幕上可见,而普通内存则是不可见,但可以复制到屏幕缓存内存中,游戏常用到


3、Drawable类是一个抽象类,与canvas相似,给内存缓冲区中绘制图案,两者区别如下:

    (1)Drawable类内存不存在内存缓冲区,当要绘制时,将Canvas对象传给Drawable,然后Drawable就可以绘制了

    (2)每个具体的Drawable对象仅仅绘制某个特定的图案,SDK中包含的Drawable实现类有BitmapDrawable,NinePatchDrawable、PictureDrawable、ColorDrawable等,这些类名称标识该Drawable所能绘制的图案

      所以,如果说Drawable是有料就加工,那么Canvas则是综合加工厂

4、Matrix类的作用是改变绘制的图案的形状参数,包括旋转,平移,缩放,阿尔法变换四种。注意,这种改变仅仅针对的是剪切区中的图案,而不是针对整个图案,同时转换的内部不仅包含图案,还包括剪切区本身。也用到动画原理,所以用Matrix对原形的图形进行动态变换时,变换后的图形可以超出本身剪切区进行显示

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值