CANVAS 的座标

来源:互联网 发布:有关程序员的美剧 编辑:程序博客网 时间:2024/05/12 12:09

CANVAS作图的一个重要的类,一般理解为画布或者图层。作图至少要三个类CANVAS,PAINT,BITMAP。
PAINT为画笔,可以理解为产生像素的一个工具,而BITMAP则可理解为存放像素的一个容器。
CANVAS必须要BITMAP作为构造函数参数。
困扰大家的是作图的座标原点,先来探索下CANVAS的座标原点在哪。

public class MainActivity extends Activity {

@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    this.requestWindowFeature(Window.FEATURE_NO_TITLE);    setContentView(R.layout.activity_main);}

}

先去除标题栏,注意不是状态栏。
自定义VIEW中,以原点为圆心,画个圆。
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint = new Paint();
paint.setColor(Color.RED);
canvas.drawCircle(0,0,200,paint);
}
结果如下:
这里写图片描述
座标原点为CONTENTVIEW的座标原点(左上角,不包括状态栏那部分可见部分为CONTENTVIEW),也就是屏幕的座标原点。

下面将平移座标,看看效果:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint = new Paint();
paint.setColor(Color.RED);
canvas.translate(200,200);
canvas.drawCircle(0,0,200,paint);
}
这里写图片描述

这个效果与下面的相同:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint = new Paint();
paint.setColor(Color.RED);
canvas.drawCircle(200,200,200,paint);
}
这里写图片描述

0 0
原创粉丝点击