/PathTest1/src/com/lxm/pathtest1/MainActivity.java
package com.lxm.pathtest1;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.graphics.Paint.Align;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new TextView(this));
}
class TextView extends View{
final String DRAW_STR = "瘋狂Android講義";
Path paths[] = new Path[3];
Paint paint;
public TextView(Context context) {
super(context);
paths[0] = new Path();
paths[0].moveTo(0, 0);
for(int i=1;i<=7;i++){
paths[0].lineTo(i*30, (float)Math.random() * 30);
}
paths[1] = new Path();
RectF oval = new RectF(0,0,200,120);
paths[1].addOval(oval, Path.Direction.CCW);
paths[2] = new Path();
paths[2].addArc(oval, 60, 180);
paint = new Paint();
paint.setAntiAlias(true);//用来防止边缘的锯齿
paint.setColor(Color.GRAY);
paint.setStrokeWidth(1);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.WHITE);
canvas.translate(40, 40);
paint.setTextAlign(Paint.Align.RIGHT);
paint.setTextSize(20);
paint.setStyle(Paint.Style.STROKE);
canvas.drawPath(paths[0], paint);
canvas.drawTextOnPath(DRAW_STR, paths[0], -8, 20, paint);
canvas.translate(0, 60);
paint.setStyle(Paint.Style.STROKE);
canvas.drawPath(paths[1], paint);
paint.setStyle(Paint.Style.FILL);
canvas.drawTextOnPath(DRAW_STR, paths[1], -20, 20, paint);
canvas.drawTextOnPath(DRAW_STR, paths[2], -10, 20, paint);
}
}
@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;
}
}
源码下载