创建一个

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);
}
}

更多相关文章

  1. Android(安卓)5.0设置全屏无标题
  2. android刮刮卡效果
  3. Android曲线图,柱状图,饼图
  4. 百度SDK定位
  5. Android关于在Canvas类里的绘制线程问题汇总
  6. Android(安卓)使用ActivityOptions实现Activity转场动画
  7. Android(安卓)TextView中文本点击文字跳转
  8. invisible visible gone
  9. android 动态设置控件的高度,使用对应布局中的dp值

随机推荐

  1. Android基础笔记(六)-网络编程
  2. Android开发入门必知:应用界面组成
  3. Android(安卓)Web App官方文档翻译第一章
  4. Android Button及TextView动态变换颜色
  5. Android8.1 Launcher3 去掉抽屉(三)
  6. Android横竖屏常问题
  7. 【Android】内存泄漏调试
  8. IcedRobot——基于OpenJDK的Android分支
  9. android工作小结 ---- 1
  10. 【Android】ViewPager实现图片左右滑动播