android开发-画笔画布画几何图形
一个activity,显示一个view
activity:
package com.example.test;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView还可以这样用的
setContentView(new MainView(this));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
view:
package com.example.test;
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.graphics.Typeface;
import android.view.View;
public class MainView extends View{
//要有一支画笔才能画
private Paint p;
public MainView(Context context) {
super(context);
// TODO Auto-generated constructor stub
p = new Paint();
//设置画笔无锯齿(如果不设置可以看到效果很差)
p.setAntiAlias(true);
//设置背景常亮
this.setKeepScreenOn(true);
//设置画笔颜色
p.setColor(Color.WHITE);
}
@Override
public void draw(Canvas canvas) {
// TODO Auto-generated method stub
super.draw(canvas);
//设置画布颜色
canvas.drawColor(Color.BLACK);
//画矩形
Rect rect = new Rect(50, 50, 100, 100);
canvas.drawRect(rect, p);
//椭圆
RectF rectF = new RectF(120f,30f,180f,180f);
canvas.drawArc(rectF, 0, 360, true, p);
//画圆
p.setColor(Color.BLUE);
canvas.drawCircle(80, 230, 50, p);
//画直线
p.setColor(Color.WHITE);
canvas.drawLine(30, 400, 300, 100, p);
//写字
p.setTextSize(30f);
p.setTypeface(Typeface.SANS_SERIF);
canvas.drawText("梁国俏", 200, 300, p);
}
}