认识View-01

来源:互联网 发布:free mobile java在线 编辑:程序博客网 时间:2024/06/06 00:53

认识View-01

public class CustomView extends View {    private Paint paint;    public CustomView(Context context) {        super(context);    }    /**     * 在XML中使用需要实现两个参数的构造方法     * @param context 上下文     * @param attrs 自定义属性     */    public CustomView(Context context, AttributeSet attrs) {        super(context, attrs);        /**         * 创建一支画笔         */        paint = new Paint();        // 开启抗锯齿        paint.setAntiAlias(true);        // 设置画笔颜色        paint.setColor(Color.parseColor("#ff0000"));        /**         *  [1] 填充--> 默认         *  paint.setStyle(Paint.Style.FILL);         *  [2] 描边         *  paint.setStyle(Paint.Style.STROKE);         *  [3] 填充并描边         *  paint.setStyle(Paint.Style.FILL_AND_STROKE);         */        paint.setStyle(Paint.Style.FILL);        /**         * 设置描边宽度         * paint.setStrokeWidth(10);         */    }    /**     * 此方法用于绘制view     * @param canvas 画布     */    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        Log.e("onDraw","被触发");        /**         * 在View的中央绘制一个100像素的圆         * @param cx 原点X轴坐标         * @param cy 原点Y轴坐标         * @param radius 圆的半径         * @param paint 用于绘制的画笔         */        canvas.drawCircle(getWidth()/2,getHeight()/2,100,paint);    }    int count = 0;    /**     * 此方法用于处理View的触摸事件     * @param event     * @return     */    @Override    public boolean onTouchEvent(MotionEvent event) {        // 获取用户的输入        switch (event.getAction()){            case MotionEvent.ACTION_DOWN:                // TODO 按下                Log.e("按下","次数="+(count++));                int i1 = new Random().nextInt(9);                int i2 = new Random().nextInt(9);                int i3 = new Random().nextInt(9);                int i4 = new Random().nextInt(9);                int i5 = new Random().nextInt(9);                int i6 = new Random().nextInt(9);                // 改变画笔的颜色                paint.setColor(Color.parseColor("#"+i1+i2+i3+i4+i5+i6));                /**                 * 刷新画布                 */                invalidate();                /**                 * 在非UI线程刷新则调用                 * postInvalidate();                 */                break;        }        return super.onTouchEvent(event);    }}

每次按下变换不同颜色
这里写图片描述这里写图片描述

0 0
原创粉丝点击