效果如下:
主体代码如下:
importandroid.content.Context;
importandroid.graphics.Canvas;
importandroid.graphics.Color;
importandroid.graphics.Paint;
importandroid.view.SurfaceHolder;
importandroid.view.SurfaceView;
publicclassDrawTextStudyextendsSurfaceViewimplementsSurfaceHolder.Callback{
SurfaceHolderholder;
publicDrawTextStudy(Contextcontext){
super(context);
//TODOAuto-generatedconstructorstubholder=this.getHolder();
holder.addCallback(this);
}
@Override
publicvoidsurfaceChanged(SurfaceHolderholder,intformat,intwidth,
intheight){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidsurfaceCreated(SurfaceHolderholder){
//TODOAuto-generatedmethodstubnewThread(newMyThread()).start();
}
@Override
publicvoidsurfaceDestroyed(SurfaceHolderholder){
//TODOAuto-generatedmethodstub
}
voiddrawText(Canvascanvas,Stringtext,floatx,floaty,Paintpaint,floatangle){
if(angle!=0){
canvas.rotate(angle,x,y);
}
canvas.drawText(text,x,y,paint);
if(angle!=0){
canvas.rotate(-angle,x,y);
}
}
classMyThreadimplementsRunnable{
@Override
publicvoidrun(){
//TODOAuto-generatedmethodstubCanvascanvas=null;
try{
canvas=holder.lockCanvas();
Paintpaint=newPaint();
paint.setColor(Color.WHITE);
paint.setTextSize(20);
canvas.drawLine(100,100,100,400,paint);
drawText(canvas,"Hello",80,200,paint,-90);
paint.setColor(Color.RED);
paint.setTextSize(40);
drawText(canvas,"free",150,180,paint,-45);
paint.setColor(Color.BLUE);
drawText(canvas,"World",150,80,paint,0);
canvas.drawLine(100,100,400,100,paint);
}catch(Exceptione){
}finally{
holder.unlockCanvasAndPost(canvas);
}
}
}
}
activity调用
super.onCreate(savedInstanceState);
setContentView(newDrawTextStudy(this));
}