画android机器人很简单,就是几个圆角距形和几个圆形的组合,难点在于机器人头顶上的两根天线,涉及到旋转画布,需要通过不断地调整参数来定位到所需的位置。 先看效果图: Java代码:
package com.pocketdigi;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.View;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RobotView cv = new RobotView(this);
setContentView(cv);
}
}
class RobotView extends View {
public RobotView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawColor(Color.WHITE);
//背景为白色
Paint paint = new Paint();
paint.setAntiAlias(true);
//抗锯齿
paint.setColor(Color.GREEN);
//画笔颜色为绿色
canvas.rotate(45.0f);
//顺时针旋转画板45度
canvas.drawRoundRect(new RectF(200, 0, 270, 10), 10, 10, paint);
//左天线
canvas.restore();
//恢复canvas到原始状态
canvas.rotate(-45.0f);
canvas.drawRoundRect(new RectF(20, 285, 90, 295), 10, 10, paint);
//右天线
canvas.restore();
canvas.drawCircle(200, 350, 100, paint);
//画圆,下半圆直接被下面的身体覆盖
canvas.drawRoundRect(new RectF(100, 350, 300, 530), 10, 10, paint);
//画身体
paint.setColor(Color.WHITE);
//画笔改白色
canvas.drawCircle(160, 300, 10, paint);
//左眼
canvas.drawCircle(240, 300, 10, paint);
//右眼
canvas.drawRect(new Rect(100,350,300,360), paint);
//画白色距形,分开头跟身体
paint.setColor(Color.GREEN);
//换回绿色
canvas.drawRoundRect(new RectF(60, 360, 90, 500), 10, 10, paint);
//左手
canvas.drawRoundRect(new RectF(310, 360, 340, 500), 10, 10, paint);
//右手
canvas.drawRoundRect(new RectF(130, 520, 160, 620), 10, 10, paint);
//左脚
canvas.drawRoundRect(new RectF(240, 520, 270, 620), 10, 10, paint);
//右脚
}
}