Android绘图Canvas、Paint

来源:互联网 发布:脂溢性脱发知乎 编辑:程序博客网 时间:2024/05/15 15:41


创建一个

MyView.java

package com.example.canvastest;


import android.annotation.SuppressLint;
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.view.View;


public class MyView extends View{


public MyView(Context context) {
super(context);
}


@SuppressLint("DrawAllocation")
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);

//设置画布的背景为白色
canvas.drawColor(Color.WHITE);

//创建画笔
Paint paint=new Paint();

//去锯齿
paint.setAntiAlias(true);
//设置画笔颜色
paint.setColor(Color.GREEN);
/*
* 设置画笔是画实心的还是空心的
* Paint.Style.STROKE 空心的
* Paint.Style.FILL 实心的
*/
paint.setStyle(Paint.Style.STROKE);
//设置空心线的宽
paint.setStrokeWidth(3);


//绘制圆形
canvas.drawCircle(30, 30, 20, paint);
//绘制正方形
canvas.drawRect(30, 100, 160, 160, paint);

//创建圆角矩形
RectF rec1=new RectF(30,200,200,250);
//绘制圆角矩形
canvas.drawRoundRect(rec1, 15, 15, paint);

//绘制椭圆
canvas.drawOval(new RectF(30,280,200,330), paint);

//通过Path对象绘制三角形
Path path1=new Path();
path1.moveTo(30, 350);
path1.lineTo(30, 400);
path1.lineTo(200, 400);
//关闭路径
path1.close();
//绘制path1
canvas.drawPath(path1, paint);

//通过Path对象绘制五角星
Path path2=new Path();
path2.moveTo(30, 420);
path2.lineTo(30, 470);
path2.lineTo(70, 530);
path2.lineTo(60, 580);
path2.lineTo(120, 460);
path2.close();
canvas.drawPath(path2, paint);

//绘制实心的矩形
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
canvas.drawRect(180, 100, 240, 160, paint);

//设置画笔渐变效果
//Shader shader=new LinearGradient(0, 0, 50, 50, Color.RED, Color.GREEN, Shader.TileMode.MIRROR);

//paint.setShader(shader);
//设置阴影
paint.setShadowLayer(5, 5, 5, Color.GRAY);

canvas.drawRect(230, 180, 270, 250, paint);

paint.setTextSize(24);
//绘制字符串
canvas.drawText("哈哈", 230, 300, paint);

}
}

MainActivity.java

package com.example.canvastest;


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


public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView view=new MyView(MainActivity.this);

setContentView(view);
}
}

0 0
原创粉丝点击