在android平台上画直线跟在PC平台上画直线有很大的不同
一.在PC平台上画直线
1.获取画布对象
g=panel.getGraphics();
2.直接调用画布的画直线方法就行了
g.drawLine(x1,y1,x2,y2);
如果要实现重绘的话就直接把画的方法写在重绘方法里面就行了
public void paint(Graphics g){
super.paint(g);
g.drawLine(x1,y1,x2,y2);
}
二.在android平台上画直线需要四个组件:canvas(画布)bitmap(位图)paint(画笔)a drawing primitive
1.首先定义各组件
Bitmap map=new Bitmap();
Paint p=new Paint();
Canvas c=new Canvas(map);
2.调用画布的画直线方法
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
c.drawLine(x1,y1,x2,y2,p);
}
实现重绘
在activitity类中获得ListenerView中的image对象
ListenerView image = (ListenerView)findViewById(R.id.image);
在activity类中创建一个画布
Bitmap map = Bitmap.createBitmap(500, 500 , Config.ARGB_8888);
将创建的画布传到ListenerView类中去
image.setBitmap(map);
在ListenerView中接受传过来的位图
public void setBitmap(Bitmap map){
this.map=map;
}
将重绘方法写在ListenerView中的画图方法
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
c.drawLine(x1, y1, x2, y2, paint);
if(map!=null){//如果位图上面有直线的话,每次画直线的时候都会重绘一次
//绘制已经画有直线bitmap
canvas.drawBitmap(map, 0, 0, null);
}
}
一.在PC平台上画直线
1.获取画布对象
g=panel.getGraphics();
2.直接调用画布的画直线方法就行了
g.drawLine(x1,y1,x2,y2);
如果要实现重绘的话就直接把画的方法写在重绘方法里面就行了
public void paint(Graphics g){
super.paint(g);
g.drawLine(x1,y1,x2,y2);
}
二.在android平台上画直线需要四个组件:canvas(画布)bitmap(位图)paint(画笔)a drawing primitive
1.首先定义各组件
Bitmap map=new Bitmap();
Paint p=new Paint();
Canvas c=new Canvas(map);
2.调用画布的画直线方法
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
c.drawLine(x1,y1,x2,y2,p);
}
实现重绘
在activitity类中获得ListenerView中的image对象
ListenerView image = (ListenerView)findViewById(R.id.image);
在activity类中创建一个画布
Bitmap map = Bitmap.createBitmap(500, 500 , Config.ARGB_8888);
将创建的画布传到ListenerView类中去
image.setBitmap(map);
在ListenerView中接受传过来的位图
public void setBitmap(Bitmap map){
this.map=map;
}
将重绘方法写在ListenerView中的画图方法
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
c.drawLine(x1, y1, x2, y2, paint);
if(map!=null){//如果位图上面有直线的话,每次画直线的时候都会重绘一次
//绘制已经画有直线bitmap
canvas.drawBitmap(map, 0, 0, null);
}
}