package shader.yb;
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.view.View;
/**
* @author yubin
* @version 2012-8-14 上午10:45:28
**/
public class RadialGameView extends View implements Runnable {
Paint mPaint = null;
// 环形渐变渲染
Shader mRadialGradient = null;
public RadialGameView(Context context) {
super(context);
// 创建RadialGradient对象
// 第一个,第二个参数表示圆心坐标
// 第三个参数表示半径
// 第四个,第五个,第六个与线性渲染相同
mRadialGradient = new RadialGradient(50, 50, 50, new int[] {
Color.GREEN, Color.RED, Color.BLUE, Color.WHITE }, null,
Shader.TileMode.REPEAT);
mPaint = new Paint();
new Thread(this).start();
}
@Override
protected void onDraw(Canvas canvas) {
// 绘制环形渐变
mPaint.setShader(mRadialGradient);
// 第一个,第二个参数表示圆心坐标
// 第三个参数表示半径
canvas.drawCircle(50, 50, 50, mPaint);
}
@Override
public void run() {
while(!Thread.currentThread().isInterrupted()) {
try {
Thread.sleep(100);
}
catch(Exception e) {
Thread.currentThread().interrupt();
}
postInvalidate();
}
}
}
效果图