也把Canvas也写出来吧
Canvas 就是画布,Paint就是画笔..(废话)
在android中,可以自定义一个view,然后在这个view里面随便画你的东西。还是看代码吧。
public class MainActivity extends Activity { private WindowManager wm = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); wm = this.getWindowManager(); //用下面我们画的那个view作为这个activity的内容 setContentView(new Panel(this)); Toast.makeText(MainActivity.this, "点击屏幕退出程序",Toast.LENGTH_SHORT ).show(); } /** * 内部类,自定义View * * @author cfuture_小智 * @Description */ class Panel extends View { //定义一支笔用来画画 private Paint mPaint = null; private float width; private float height; public Panel(Context context) { super(context); // 把笔给削好 mPaint = new Paint(); //量一下这个屏幕有多宽 width = wm.getDefaultDisplay().getWidth(); height = wm.getDefaultDisplay().getHeight(); } /* * 重写这个方法,在eclipse中按下alt+shift+s,选择override/Implements method这项,找到onDraw这个方法,点确定就OK了 * (non-Javadoc) * @see android.view.View#onDraw(android.graphics.Canvas) */ @Override protected void onDraw(Canvas canvas) { // 给画布上色 canvas.drawColor(Color.WHITE); // 用我们的笔沾上黑色 mPaint.setColor(Color.BLACK); //消除锯齿 mPaint.setAntiAlias(true); // 打算写30这么大的字 mPaint.setTextSize(30); // 把字尖弄宽一点 mPaint.setStrokeWidth(10); //文字水平居中 mPaint.setTextAlign(Align.CENTER); FontMetrics fontMetrics = mPaint.getFontMetrics(); // 用尺子量量文字高度 float fontHeight = fontMetrics.bottom - fontMetrics.top; // 用尺子量量文字高度 float textBaseY = height - (height - fontHeight) / 2 - fontMetrics.bottom; //在x=width/2,y= textBaseY这个点了写了我们的文字 canvas.drawText("CanvasDemo", width/2, textBaseY, mPaint); //给我们的画笔沾上蓝色 mPaint.setColor(Color.BLUE); //以圆心(width/2,height/2+30),半径为15,用mPaint这个笔画一个圆 canvas.drawCircle(width/2, height/2+30, 15, mPaint); super.onDraw(canvas); } @Override public boolean onTouchEvent(MotionEvent event) { finish(); return super.onTouchEvent(event); } } }
canvas有挺多常用的方法(在EOE上找到的):
canvas.drawRect(RectF,Paint)方法用于画矩形,第一个参数为图形显示区域,第二个参数为画笔,设置好图形显示区域Rect和画笔Paint后,即可画图;
canvas.drawRoundRect(RectF, float, float, Paint) 方法用于画圆角矩形,第一个参数为图形显示区域,第二个参数和第三个参数分别是水平圆角半径和垂直圆角半径。
canvas.drawLine(startX, startY, stopX, stopY, paint):前四个参数的类型均为float,最后一个参数类型为Paint。表示用画笔paint从点(startX,startY)到点(stopX,stopY)画一条直线;
canvas.drawArc(oval, startAngle, sweepAngle, useCenter, paint):第一个参数oval为RectF类型,即圆弧显示区域,startAngle和sweepAngle均为float类型,分别表示圆弧起始角度和圆弧度数,3点钟方向为0度,useCenter设置是否显示圆心,boolean类型,paint为画笔;
canvas.drawCircle(float,float, float, Paint)方法用于画圆,前两个参数代表圆心坐标,第三个参数为圆半径,第四个参数是画笔;
更多请看看这个:http://blog.csdn.net/hanghangaidoudou/article/details/6420163
不懂new Rect(150, 75, 260, 120) 的参数
看看http://www.eoeandroid.com/thread-72266-1-1.html
还觉得方法不够用那你更应该看看这里了:
http://www.eoeandroid.com/home.php?mod=space&do=favorite&view=me