[学习笔记]用户界面优化之Android SurfaceView的使用

1、了解SurfaceView 与View的区别

2、SurfaceView实践
绘制多个图形
1)创建工程SurfaceViewLearn
new一个类MyView.java

MainActivity.java

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new MyView(this));
    }
}

MyView.java

package com.keen.surfaceviewlearn;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.SurfaceHolder;
import android.view.SurfaceView;


public class MyView extends SurfaceView implements SurfaceHolder.Callback {
    private Paint paint = null;//声明画笔

    public MyView(Context context) {
        super(context);
        paint = new Paint();
        paint.setColor(Color.RED);//设置画笔颜色
        getHolder().addCallback(this);
    }

    //绘制方法
    public void draw() {
        Canvas canvas = getHolder().lockCanvas();//锁定画布
        canvas.drawColor(0xFFFFFFFF);
        canvas.save();//保存 可编辑状态
        canvas.rotate(90, getWidth()/2, getHeight()/2);//修改

        //绘制方块
//        canvas.drawRect(0, getHeight()/2, getWidth(), getHeight(), paint);
//        canvas.drawRect(0, getHeight()/2+100, getWidth(), getHeight()+100, paint);
        //绘制直线
        canvas.drawLine(0, getHeight()/2, getWidth(), getHeight(), paint);
        canvas.restore();//复原 配合save()使用
        canvas.drawLine(0, getHeight()/2+100, getWidth(), getHeight()+100, paint);

        getHolder().unlockCanvasAndPost(canvas);//解锁画布
    }

    @Override
    public void surfaceCreated(SurfaceHolder surfaceHolder) {
        draw();
    }

    @Override
    public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {

    }

    @Override
    public void surfaceDestroyed(SurfaceHolder surfaceHolder) {

    }
}

垂直
这里写图片描述
平行
这里写图片描述

2)绘制组合图形
canvas n.帆布、油画(布) v.用帆布覆盖 a.帆布制的

猜你喜欢

转载自blog.csdn.net/weixin_38256474/article/details/72775136