skia之初体验

skia是安卓原生的2d图形库,源码位于安卓源码/external/skia目录下。SkCanvas是核心类。

最近看了一个博客说是安卓从4.0开始绘制api就慢慢不用skia,而都改用openGL,因为skia这个东东不好硬件加速。

1、从SkCanvas.h开始,SkCanvas有两个构造函数:

explicit SkCanvas(SkDevice* device);//传入一个设备

explicit SkCanvas(const SkBitmap& bitmap);//传入一个位图

只用过第二种构造方式。。。

2、SkBitmap哪里来的?

SkBitmap   bitmap;

bitmap.setConfig(SkBitmap::kARGB_8888_Config, 1280, 720);//设置宽高,以及每个像素点是啥格式
bitmap.setPixels(bitmapBuffer);//可以绑定一个现成的buffer,(unsigned char * buffer)
或者

bitmap.allocPixels(NULL);//或者申请一个空间

3、有了自己的SkCanvas

SkCanvas canvas(bitmap);

4、来画吧!

virtual void drawRect(const SkRect& rect, const SkPaint& paint);

virtual void drawText(const void* text, size_t byteLength, SkScalar x,SkScalar y, const SkPaint& paint);

。。。。。。

都要传入一个SkPaint

5、SkPaint哪里来的?
SkPaint paint;

paint.setXfermodeMode(SkXfermode::kSrc_Mode);//这个猜测是设混合方式的

可以设很多东东,查头文件吧~

6、画吧~

size_t byteLength=strlen(pTest);

canvas.drawText((HI_CHAR *)pTest,byteLength,  0, 20, paint);//写字是以左下角为起点的


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值