画个android机器人

原文:http://blog.sina.com.cn/s/blog_61ef49250100qw9x.html


定义一个画图的接口:

package com.ken.drawable;

import android.graphics.Canvas;

public interface drawGraphics {

	public void draw(Canvas canvas);

}

画圆:

package com.ken.drawable;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;

public class DrawCircle implements drawGraphics {
	private  Paint paint=  null;

    private  Paint paint_eye=  null;



    public  DrawCircle(){

    paint= new  Paint();

    paint_eye= new  Paint();

}
	public void draw(Canvas canvas) {
		// TODO Auto-generated method stub
		//绘制圆形(圆心x,圆心y,半径r,画笔p)

        paint_eye.setAntiAlias(true);

        paint.setAntiAlias(true);

        RectF rectF = new RectF(120,60,370,240);

        paint_eye.setColor(Color.WHITE);

        paint.setColor(Color.GREEN);

        canvas.drawCircle(190, 110, 18, paint_eye);

        canvas.drawCircle(300, 110, 18, paint_eye);

        canvas.drawArc(rectF, 180, 180,true, paint);
	}

}

画直线:

package com.ken.drawable;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;

public class DrawLine implements drawGraphics {
	private Paint paint=  null;

	 

    public  DrawLine(){

        paint=  new  Paint();

    }
	public void draw(Canvas canvas) {
		// TODO Auto-generated method stub
		 paint.setAntiAlias(true);

         //绘制直线

         paint.setColor(Color.GREEN);

         //设置线条粗细

         paint.setStrokeWidth(12);

         canvas.drawLine(120,40,170,90, paint);

         canvas.drawLine(320,90,370,40, paint);
	}

}

画矩形:

package com.ken.drawable;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;

public class DrawRect implements drawGraphics {
	private  Paint paint=  null;
	public DrawRect(){

	       paint= new  Paint();

	}

	public void draw(Canvas canvas) {
		// TODO Auto-generated method stub
		//定义圆角矩形对象

        RectF rectF1 = new RectF(120,170,370,500);

        RectF rectF2 = new RectF(40,150,90,400);

        RectF rectF3 = new RectF(390,150,440,400);

        RectF rectF4 = new RectF(140,520,200,650);

        RectF rectF5 = new RectF(290,520,350,650);

        paint.setAntiAlias(true);

        //设置画笔颜色为BLUE

        paint.setColor(Color.GREEN);

        //在画布上绘制圆角矩形/圆弧/直线

        canvas.drawRoundRect(rectF1, 20, 20, paint);

        canvas.drawRoundRect(rectF2, 20, 20, paint);

        canvas.drawRoundRect(rectF3, 20, 20, paint);

        canvas.drawRoundRect(rectF4, 20, 20, paint);

        canvas.drawRoundRect(rectF5, 20, 20, paint);
	}

}

显示的类:

package com.ken.drawable;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.View;

public class GameView extends View implements Runnable {
	private Paint mPaint=null;
	private drawGraphics mdrawGraphics=null;

	public GameView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
		//构建对象
		mPaint=new Paint();
		//开启线程
		new Thread(this).start();
	}
	
	public void onDraw(Canvas canvas){
		super.onDraw(canvas);
		//设置画布为黑色
		//canvas.drawColor(Color.BLACK);
		//消除锯齿
		mPaint.setAntiAlias(true);
		//设置图形为空心
		mPaint.setStyle(Paint.Style.STROKE);
		//绘制空心几何图形
		mdrawGraphics=new DrawCircle();
		mdrawGraphics.draw(canvas);
		mdrawGraphics=new DrawLine();
		mdrawGraphics.draw(canvas);
		mdrawGraphics=new DrawRect();
		mdrawGraphics.draw(canvas);
	}

	public void run() {
		// TODO Auto-generated method stub
		while(!Thread.currentThread().isInterrupted()) {

            try{

                  Thread.sleep(1000);

            } catch(InterruptedException e) {

              // TODO: handle exception

              Thread.currentThread().interrupt();

            }

             //使用postInvalidate 可以直接在线程中更新界面

              postInvalidate(); 

       }

 }
	}



主类:

package com.ken.drawable;

import android.app.Activity;
import android.os.Bundle;

public class GameStart extends Activity {
	private  GameView mGameView=  null; 

    @Override

    public  void  onCreate(Bundle  savedInstanceState) { 

        super.onCreate(savedInstanceState);

        this.mGameView= new GameView(this);

        setContentView(mGameView);

    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值