Android立体球painter
2234 ワード
public class GameView extends View implements Runnable {
public final static String TAG = "Example_05_03_GameView";
// Paint
private Paint mPaint = null;
public GameView(Context context) {
super(context);
//
mPaint = new Paint();
//
new Thread(this).start();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// Paint 、Alpha 、 、
//
// GradientDrawable mDrawable = new GradientDrawable(GradientDrawable.Orientation.TL_BR,
// new int[] { 0xFFFF0000, 0xFF00FF00,
// 0xFF0000FF });
// mDrawable.setGradientType(GradientDrawable.LINEAR_GRADIENT);
// setCornerRadii(mDrawable, 90, 90, 100, 10);
// mDrawable.draw(canvas);
// mDrawable.setGradientType(GradientDrawable.RADIAL_GRADIENT);
// setCornerRadii(mDrawable, 0, 0, 100, 100);
// mDrawable.draw(canvas);
//canvas.drawCircle(300, 300, 100, mPaint);
// int colorFrom = Color.BLACK;
//
// int colorTo = Color.WHITE;
RadialGradient linearGradientShader = new RadialGradient(300, 300, 100,Color.GREEN, Color.BLACK,Shader.TileMode.CLAMP);
mPaint.setShader(linearGradientShader);
canvas.drawCircle(300, 300, 100, mPaint);
}
static void setCornerRadii(GradientDrawable drawable,
float r0, float r1, float r2, float r3) {
drawable.setCornerRadii(new float[] { r0, r0, r1, r1,
r2, r2, r3, r3 });
}
public void paintTriangle (int x1, int y1, int x2, int y2, int x3, int y3, Paint mPaint,Canvas canvas){
canvas.drawLine(x1, y1, x2, y2, mPaint);
canvas.drawLine(x2, y2, x3, y3, mPaint);
canvas.drawLine(x3, y3, x1, y1, mPaint);
}
//
public boolean onTouchEvent(MotionEvent event) {
return true;
}
//
public boolean onKeyDown(int keyCode, KeyEvent event) {
return true;
}
//
public boolean onKeyUp(int keyCode, KeyEvent event) {
return true;
}
public boolean onKeyMultiple(int KeyCode, int repeatCount, KeyEvent event) {
return true;
}
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
try {
Thread.sleep(100);
} catch (Exception e) {
Thread.currentThread().interrupt();
}
//
postInvalidate();
}
}
}