import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.graphics.Shader;
import android.util.AttributeSet;
import android.view.View;
public class CustomView extends View {
private Paint paint = new Paint();
private Path path1 = new Path();
private Path path2 = new Path();
private Path path3 = new Path();
private RectF rectf1 = new RectF(50, 50, 100, 100);
private Shader mShasder = new LinearGradient(0, 0, 40, 60, new int[]{Color.RED,Color.GREEN,Color.BLUE,Color.YELLOW}, null, Shader.TileMode.REPEAT);
public CustomView(Context context) {
super(context);
}
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs, 0);
}
public CustomView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawARGB(50, 200, 120, 120);
//去锯齿
paint.setAntiAlias(true);
//设置线宽度
paint.setStrokeWidth(3);
paint.setARGB(255, 200, 100, 150);
canvas.drawRect(this.getWidth()/2-10, this.getHeight()/2-10, this.getWidth()/2+10, this.getHeight()/2+10, paint);
canvas.drawLine(0, 0, this.getWidth(), this.getHeight(), paint);
canvas.drawLine(this.getWidth(), 0, 0, this.getHeight(), paint);
//绘制三角形
path1.moveTo(10, 340);
path1.lineTo(70, 340);
path1.lineTo(40, 290);
path1.close();
canvas.drawPath(path1, paint);
//绘制五边形
path2.moveTo(150, 340);
path2.lineTo(210, 340);
path2.lineTo(210, 290);
path2.lineTo(180, 260);
path2.lineTo(150, 290);
path2.close();
canvas.drawPath(path2, paint);
//绘制五角星
path3.moveTo(250, 50);
path3.lineTo(240, 74);
path3.lineTo(220, 74);
path3.lineTo(240, 86);
path3.lineTo(230, 110);
path3.lineTo(250, 94);
path3.lineTo(270, 110);
path3.lineTo(260, 86);
path3.lineTo(280, 74);
path3.lineTo(260, 74);
path3.close();
canvas.drawPath(path3, paint);
//设置渐变器后绘制
//为Paint设置渐变器
paint.setShader(mShasder);
//设置阴影
paint.setShadowLayer(45, 10, 10, Color.GRAY);
//绘制圆角矩形
canvas.drawRoundRect(rectf1, 15, 15, paint);
}
}