Canvas

来源:互联网 发布:csgom4a1皮肤知乎 编辑:程序博客网 时间:2024/06/04 00:43

先看代码:

public class CustomActivity extends Activity {      @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);          init();      }        private void init() {          LinearLayout layout=(LinearLayout) findViewById(R.id.root);          final DrawView view=new DrawView(this);          view.setMinimumHeight(500);          view.setMinimumWidth(300);          //通知view组件重绘    //        view.invalidate();          layout.addView(view);                }          public class DrawView extends View{    public DrawView(Context context) {    super(context);    }    protected void onDraw(Canvas canvas) {              super.onDraw(canvas);              /*              * 方法 说明 drawRect 绘制矩形 drawCircle 绘制圆形 drawOval 绘制椭圆 drawPath 绘制任意多边形              * drawLine 绘制直线 drawPoin 绘制点              */              // 创建画笔              Paint p = new Paint();              p.setStrokeWidth(2);    // 设置“空心”的外框的宽度              p.setStyle(Style.STROKE);//空心矩形框              p.setColor(Color.RED);// 设置灰色  //            p.setStyle(Paint.Style.FILL);//设置填满              RectF rect1=new RectF(60, 60, 80, 80);                        canvas.drawRect(rect1, p);// 正方形              canvas.drawRect(60, 90, 160, 100, p);        }      }}  

canvas画布, paint画笔。onDraw是在View初化完成之后开始调用,postInvalidate()是重绘的,也就是调用postInvalidate()后系统会重新调用onDraw方法画次。postInvalidate()是重绘的,也就是调用postInvalidate()后系统会重新调用onDraw方法画次。

0 0