[关闭]
@ZeroGeek 2015-08-17T11:47:33.000000Z 字数 2375 阅读 800

从Zero开始自定义View (一 )

view android


参考:
http://developer.android.com/intl/zh-cn/reference/android/graphics/Canvas.html canvas官网文档
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1212/703.html Android Canvas绘图详解(图文)
http://blog.csdn.net/rhljiayou/article/details/7212620 利用canvas画各种图形

http://blog.csdn.net/zhangweixing0/article/details/9064049 手机屏幕坐标
http://www.yourannet.com/android/android-screen-coordinates 手机屏幕坐标

主要是2D绘图

一 知识储备

1.1 什么是Canvas?

1.2 Canvas常用方法

1.3 如何使用Canvas?

1.3.1 简介

既然有了一块画布,我们是不是需要画笔(提供了Paint类)才能在画布上面绘制图像呢?对,
我们可以来设置画笔的属性(颜色,粗细,各种特效),绘制出各种图案。

1.3.2 Paint类常用方法:

1.3.3 简单示例

在Android中一般是调用onDraw(Canvas canvas),传入canvas ,无需自己定义。

  1. /**
  2. *显示2个圆点
  3. */
  4. @Override
  5. protected void onDraw(Canvas canvas) {
  6. super.onDraw(canvas);
  7. Paint paint = new Paint(); //创建画笔
  8. paint.setColor(Color.BLUE); //设置蓝色
  9. canvas.drawCircle(60, 20, 10, paint); //绘制
  10. paint.setColor(Color.YELLOW); //改变颜色
  11. canvas.drawCircle(120, 20, 20, paint); //绘制
  12. }

内部调用JNI,参数如下

  1. public void drawCircle(float cx, float cy, float radius, @NonNull Paint paint) {
  2. native_drawCircle(mNativeCanvasWrapper, cx, cy, radius, paint.mNativePaint);
  3. }

(当然还有一种方法,利用canvas绘制图像,生成bitmap,贴上view)

补充说明一下手机屏幕坐标系

左上角为坐标原点(0,0),横轴向右为正,纵轴向下为正。以像素为单位。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注