Android学习(18)Canvas_画布(绘图)

Android学习(18)Canvas_画布(绘图)

相关知识:

  • View(视图):View类是Android的一个超类,这个类几乎包含了所有的屏幕类型。每一个View都有一个用于绘图的画布,这个画布可以任意扩展。Android中,任何一个View类都只需要重写OnDraw方法来实现,也可以是简单的文本形式等
  • Canvas(画布):Android中利用Canvas画出各种图形(点、直线、圆、椭圆、文字、矩形等)
  • Paint(画笔):Paint类拥有风格和颜色信息,可以绘制几何图形、文本和位图
  • View、Canvas、Paint的关系相当于课桌、笔记本、铅笔的关系。
1.在Activity中创建内部类MyView,利用Canvas画一个红色的矩形
public class CanvasActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_canvas);
        //引用View视图
        setContentView(new MyView(this));
    }
    //声明实例化画笔
    private Paint paint = new Paint();
    //创建View
    public class MyView extends View{
        public MyView(Context context) {
            super(context);
        }
        //重新onDraw方法
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            //设置画布背景颜色(白色)
            canvas.drawColor(0xFFFFFFFF);
            //保存当前图形的一个可编辑或者可剪辑的状态
            canvas.save();
            //设置画笔颜色
            paint.setColor(Color.RED);
            canvas.drawRect(0,0,200,200,paint);
            //释放资源
            canvas.restore();
        }
    }
}

Android学习(18)Canvas_画布(绘图)_第1张图片

2.绘制多个图形

(1)新建一个MyView.java类,继承View

public class MyView extends View {
    //实例化三支画笔
    private Paint p1 = new Paint();
    private Paint p2 = new Paint();
    private Paint p3 = new Paint();

    public MyView(Context context) {
        super(context);
        //设置画笔属性
        p1.setColor(Color.BLUE);
        p2.setColor(Color.RED);
        p1.setStrokeWidth(3);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        //设置画布的背景颜色
        canvas.drawColor(Color.WHITE);
        //画直线(fromX,fromY,toX,toY,Paint)
        canvas.drawLine(0,0,1000,500,p1);
        canvas.drawLine(0,500,1000,0,p2);
        //点(坐标X,坐标Y,Paint)
        canvas.drawPoint(500,200,p1);
        //绘制圆(坐标X,坐标Y,半径,Paint)
        canvas.drawCircle(500,500,100,p3);
        //绘制椭圆
        RectF rectF = new RectF();
        //椭圆最左端距离屏幕的位置
        rectF.left=400;
        //椭圆最右端距离屏幕的位置
        rectF.right=600;
        //椭圆最上端距离屏幕的位置
        rectF.top=700;
        //椭圆最下端距离屏幕的位置
        rectF.bottom=800;
        canvas.drawOval(rectF,p1);
        //绘制文字
        p3.setTextSize(30);
        canvas.drawText("Canvas的使用",0,1200,p3);
    }
}

(2)在Activity中加载该视图

public class Canvas2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_canvas2);
        //在本页面加载视图MyView
        setContentView(new MyView(this));
    }
}

Android学习(18)Canvas_画布(绘图)_第2张图片


声明:
1.知识点来源于《网易云课堂》——《Android基础视频教程》
2.本文只用于本人自身学习记录,如有侵权,请立即通知本人更改或删除

你可能感兴趣的:(Android)