圆球渲染

来源:互联网 发布:linux部署tomcat项目 编辑:程序博客网 时间:2024/04/23 15:06
package com.bawei.wss.huanxingxuanran;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RadialGradient;import android.graphics.Shader;import android.support.annotation.Nullable;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import android.widget.Toast;/** * author:Created by WangZhiQiang on 2017/11/30. */public class XuanRanQiu extends View {    float lastX = 100f;    float lastY = 100f;    Paint mPaint = null;    Shader mRadialGradient = null;    public XuanRanQiu(Context context) {        super(context);        //1.圆心X坐标2.Y坐标3.半径 4.颜色数组 5.相对位置数组,可为null 6.渲染器平铺模式        mRadialGradient = new RadialGradient(240, 240, 240, new int[]{                Color.YELLOW, Color.GREEN, Color.TRANSPARENT, Color.RED}, null,                Shader.TileMode.REPEAT);        mPaint = new Paint();    }    public XuanRanQiu(Context context, @Nullable AttributeSet attrs) {        super(context, attrs);    }    @Override    protected void onDraw(Canvas canvas) {        // 绘制环形渐变        mPaint.setShader(mRadialGradient);        // 第一个,第二个参数表示圆心坐标        // 第三个参数表示半径        mPaint.setAntiAlias(true);//设置画笔的锯齿效果        canvas.drawCircle(lastX, lastY, 200, mPaint);    }    public XuanRanQiu(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    public boolean onTouchEvent(MotionEvent event) {        //获取到手指处的横坐标和纵坐标        lastX = event.getX();        lastY = event.getY();        Toast.makeText(getContext(),"我是球",Toast.LENGTH_SHORT).show();        invalidate();        return  true;    }}