SweepGradient梯度渲染 旋转

来源:互联网 发布:腾讯网络认证 编辑:程序博客网 时间:2024/06/05 03:26

     此代码主要是学习APIDemo的代码:

package com.example.demo;import android.os.Bundle;import android.view.View;import android.app.Activity;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.Shader;import android.graphics.SweepGradient;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(new myView(this));}private static class myView extends View {float x = 250;float y = 400;private Paint mPaint = new Paint();private Shader mShader;private float mRotate;private Matrix mMatrix = new Matrix();public myView(Context context) {super(context);mShader = new SweepGradient(x, y, new int[] {Color.GREEN, Color.RED, Color.BLUE, Color.GREEN}, null);mPaint.setShader(mShader);}@Overrideprotected void onDraw(Canvas canvas) {// TODO Auto-generated method stubsuper.onDraw(canvas);canvas.drawColor(Color.WHITE);mMatrix.setRotate(mRotate, x, y);//旋转mRotate度,圆心为(x,y)            mShader.setLocalMatrix(mMatrix);                        mRotate += 30;//mRotate增加30度            if (mRotate >= 360) {                mRotate = 0;            }            invalidate();                        canvas.drawCircle(x, y, 180, mPaint);}}}


   运行结果如下:

 

0 0