1、创建安卓应用
2、创建自定义视图类CustomView
3、编写MainActicity类
4、编写CustomView类
5、查看效果
6、CustomView源码
package net.yc.homework_31;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Rect;
import android.graphics.RectF;
import android.view.View;
public class CustomView extends View {
private Paint paint;
private int screenWidth;
private int screenHeight;
public CustomView(Context context) {
super(context);
paint= new Paint();
paint.setAntiAlias(true);
screenWidth = ((Activity)context).getWindowManager().getDefaultDisplay().getWidth();
screenHeight = ((Activity)context).getWindowManager().getDefaultDisplay().getHeight();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint.setColor(Color.rgb(0,191,255));
canvas.drawRect(0,0,screenWidth,(int)(screenHeight*0.8),paint);
paint.setColor(Color.rgb(0,255,127));
canvas.drawRect(0,(int)(screenHeight*0.8),screenWidth,screenHeight,paint);
paint.setColor(Color.GREEN);
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(new Rect(100,100,200,400),paint);
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(new Rect(200,200,400,300),paint);
paint.setColor(Color.GREEN);
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(new Rect(400,100,500,400),paint);
paint.setColor(Color.YELLOW);
canvas.drawCircle(300,600,100,paint);
paint.setColor(Color.BLACK);
canvas.drawCircle(270,570,20,paint);
paint.setColor(Color.BLACK);
canvas.drawCircle(350,570,20,paint);
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.FILL);
canvas.drawArc(new RectF(300,600,360,670),0,360,true,paint);
paint.setColor(Color.YELLOW);
canvas.drawCircle(200,970,100,paint);
paint.setColor(Color.GREEN);
canvas.drawCircle(200,1070,100,paint);
paint.setColor(Color.RED);
canvas.drawCircle(200,1170,100,paint);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(new Rect(70,1180,330,1350),paint);
paint.setColor(Color.BLACK);
canvas.drawLine(200,800,200,900,paint);
paint.setColor(Color.RED);
canvas.drawCircle(200,870,30,paint);
paint.setStrokeWidth(3);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
canvas.drawArc(new RectF(750,100,800,250),0,360,true,paint);
paint.setColor(Color.rgb(255,255,255));
paint.setStyle(Paint.Style.FILL);
canvas.drawArc(new RectF(750,100,800,250),0,360,true,paint);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
canvas.drawArc(new RectF(850,100,900,250),0,360,true,paint);
paint.setColor(Color.rgb(255,255,255));
paint.setStyle(Paint.Style.FILL);
canvas.drawArc(new RectF(850,100,900,250),0,360,true,paint);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
canvas.drawCircle(825,300,100,paint);
paint.setColor(Color.rgb(255,255,255));
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(825,300,100,paint);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(790,270,15,paint);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(860,270,15,paint);
paint.setStrokeWidth(5);
paint.setColor(Color.BLACK);
canvas.drawLine(780,350,880,350,paint);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
canvas.drawRect(new Rect(810,350,830,370),paint);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
canvas.drawRect(new Rect(831,350,851,370),paint);
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.FILL);
Path path = new Path();
path.moveTo(825,550);
path.lineTo(925,800);
path.lineTo(725,800);
path.lineTo(825,550);
path.close();
canvas.drawPath(path, paint);
paint.setColor(Color.rgb(255,99,71));
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(825,550,100,paint);
paint.setColor(Color.RED);
canvas.drawLine(730,530,920,530,paint);
paint.setColor(Color.YELLOW);
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(new Rect(770,520,800,560),paint);
paint.setColor(Color.YELLOW);
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(new Rect(840,520,870,560),paint);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(785,540,10,paint);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(855,540,10,paint);
paint.setColor(Color.YELLOW);
canvas.drawLine(800,610,850,590,paint);
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(700,680,30,paint);
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(950,680,30,paint);
paint.setColor(Color.rgb(255,99,71));
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(500,1100,100,paint);
paint.setColor(Color.rgb(255,255,255));
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(800,1150,150,paint);
paint.setColor(Color.rgb(255,255,255));
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(630,1150,70,paint);
paint.setColor(Color.rgb(255,255,255));
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(970,1150,70,paint);
}
}