绘图基础
大家都知道绘图 是需要 纸 笔 染料(颜色)
而在Android里面 也同样 需要他们三个 纸(Canvas) 笔(paint) 染料(Color)
画图时 怎样得到纸呢???
这里就要提到VIew类,该类是很多控件的父类,在这里通过覆盖View.onDraw方法,可用onDraw()方法的canvas参数获得Canvas对象
然后可以通过Canvas对象中的方法绘制一些基本图形,通过View.invalidate()方法进行刷新View ,还可以通过覆盖onDraw()方法重绘画布。
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;
/**
* 文件名: MyView
* 描述: 定义一个类继承View,用于实现各种画图
* 作者:
* 时间:
* 版权:
* */
public class MyView extends View{
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
/**
* 方法:onDraw(Canvas canvas)
* 功能:重绘画布,这时画布中所有绘制的图形都会被清空,进行重新绘制
* 参数:Canvas canvas 通过此参数获取Canvas对象 可以绘制各种基本图形
* 返回值:void
* */
@Override
public void onDraw(Canvas canvas){
Paint paint = new Paint();//获取画笔对象
paint.setColor(Color.RED);//设置画笔的颜色为红色
canvas.drawCircle(100, 100, 20, paint);//用Canvas对象绘制圆形 参数 1,2用来确定圆心 3确定半径 4确定画笔
}
}
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
setContentView(new MyView(this));
}
}
canvas.drawPoint(x, y, paint);绘制一个像素点 x y 像素点的横纵坐标
canvas.drawLine(startX, startY, stopX, stopY, paint);绘制一条直线 startX, startY 直线的起始端坐标 stopX, stopY直线的结束端坐标
canvas.drawCircle(cx, cy, radius, paint); cx, cy 圆心坐标 radius 半径
***********************************************************************************************
大家都知道绘图 是需要 纸 笔 染料(颜色)
而在Android里面 也同样 需要他们三个 纸(Canvas) 笔(paint) 染料(Color)
画图时 怎样得到纸呢???
这里就要提到VIew类,该类是很多控件的父类,在这里通过覆盖View.onDraw方法,可用onDraw()方法的canvas参数获得Canvas对象
然后可以通过Canvas对象中的方法绘制一些基本图形,通过View.invalidate()方法进行刷新View ,还可以通过覆盖onDraw()方法重绘画布。
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;
/**
* 文件名: MyView
* 描述: 定义一个类继承View,用于实现各种画图
* 作者:
* 时间:
* 版权:
* */
public class MyView extends View{
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
/**
* 方法:onDraw(Canvas canvas)
* 功能:重绘画布,这时画布中所有绘制的图形都会被清空,进行重新绘制
* 参数:Canvas canvas 通过此参数获取Canvas对象 可以绘制各种基本图形
* 返回值:void
* */
@Override
public void onDraw(Canvas canvas){
Paint paint = new Paint();//获取画笔对象
paint.setColor(Color.RED);//设置画笔的颜色为红色
canvas.drawCircle(100, 100, 20, paint);//用Canvas对象绘制圆形 参数 1,2用来确定圆心 3确定半径 4确定画笔
}
}
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
setContentView(new MyView(this));
}
}
canvas.drawPoint(x, y, paint);绘制一个像素点 x y 像素点的横纵坐标
canvas.drawLine(startX, startY, stopX, stopY, paint);绘制一条直线 startX, startY 直线的起始端坐标 stopX, stopY直线的结束端坐标
canvas.drawCircle(cx, cy, radius, paint); cx, cy 圆心坐标 radius 半径
***********************************************************************************************