zoukankan      html  css  js  c++  java
  • CanVas类(绘图类)

    知识点:

    Canvas():创建一个空的画布,可以使用setBitmap()方法来设置具体的画布

    Canvas(Bitmap bitmap):bitmap对象创建一个画布,则将内容都绘制在Bitmap上,因此bitmap不能为Null

    Canvas(GL gl):在绘制3D效果时使用,与OpenGL相关

    drawColor:设置背景颜色

    setBitmap:设置画布

    clipRect:设置显示区域,即设置裁剪部分

    isOpaque:是否支持透明度

    rotate:旋转画布

    setViewport:设置画布中显示窗口

    skew:设置偏移量

     

     

    代码示例:

    package com.example.examples_05_04;

     

    import android.content.Context;

    import android.graphics.Canvas;

    import android.graphics.Color;

    import android.graphics.Paint;

    import android.graphics.Rect;

    import android.view.View;

     

    public class GameView extends View implements Runnable {

     

    private Paint m_paint;//声明一只画笔

    public GameView(Context context) {

    super(context);

    // TODO Auto-generated constructor stub

    m_paint=new Paint();//实例化画笔

    new Thread(this).start();//开启线程

    }

     

    public void run() {

    // TODO Auto-generated method stub

     

    while (!Thread.currentThread().isInterrupted()) {

    try {

    Thread.sleep(100);

    catch (Exception e) {

    // TODO: handle exception

    Thread.currentThread().interrupt();

    }

    //更新

    postInvalidate();

    }

    }

     

    public void onDraw(Canvas canvas) {

    super.onDraw(canvas);

    //设置画笔的颜色

    canvas.drawColor(Color.BLACK);

    //取消锯齿效果

    m_paint.setAntiAlias(true);

    //设置裁剪区域

    canvas.clipRect(10, 10, 280, 260);

    //锁定画布

    canvas.save();

    //旋转画布

    canvas.rotate(45.0f);

    //设置颜色和绘制矩形

    m_paint.setColor(Color.RED);

    canvas.drawRect(new Rect(10, 15, 140, 70)m_paint);

    //解除画布锁定

    canvas.restore();

    //设置颜色绘制另一个矩形

    m_paint.setColor(Color.GREEN);

    canvas.drawRect(new Rect(150, 75, 260, 120), m_paint);

    }

     

    }

     

    package com.example.examples_05_04;

     

    import android.os.Bundle;

    import android.app.Activity;

    import android.view.Menu;

     

    public class MainActivity extends Activity {

     

        @Override

        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(new GameView(this));

        }

    }

  • 相关阅读:
    LeetCode 面试题32
    LeetCode 102. 二叉树的层序遍历
    LeetCode 面试题32
    LeetCode 面试题32
    LeetCode 面试题31. 栈的压入、弹出序列
    LeetCode 946. 验证栈序列
    LeetCode 50. Pow(x, n)
    LeetCode 572. 另一个树的子树
    LeetCode 面试题50. 第一个只出现一次的字符
    LeetCode 面试题37. 序列化二叉树
  • 原文地址:https://www.cnblogs.com/danmao/p/3807229.html
Copyright © 2011-2022 走看看