android 通过canvas旋转 绘制文字 竖直等不同方向的显示
效果如下:

主体代码如下:
package com.free.chart;import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.SurfaceHolder;
import android.view.SurfaceView;public class DrawTextStudy extends SurfaceView implements SurfaceHolder.Callback {SurfaceHolder holder;public DrawTextStudy(Context context) {super(context);// TODO Auto-generated constructor stubholder = this.getHolder();holder.addCallback(this);}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {// TODO Auto-generated method stub}@Overridepublic void surfaceCreated(SurfaceHolder holder) {// TODO Auto-generated method stubnew Thread(new MyThread()).start();}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {// TODO Auto-generated method stub}void drawText(Canvas canvas ,String text , float x ,float y,Paint paint ,float angle){if(angle != 0){canvas.rotate(angle, x, y); }canvas.drawText(text, x, y, paint);if(angle != 0){canvas.rotate(-angle, x, y); }}class MyThread implements Runnable{@Overridepublic void run() {// TODO Auto-generated method stubCanvas canvas = null; try{ canvas = holder.lockCanvas();Paint paint = new Paint(); 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(Exception e){} finally {holder.unlockCanvasAndPost(canvas);} } }}
activity调用
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(new DrawTextStudy(this));
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
