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

摘要:
=0){canvas.rotate(角度,x,y);}帆布drawText(文本,x,y,绘制);如果(角度!

效果如下:

android 通过canvas旋转 绘制文字 竖直等不同方向的显示第1张

主体代码如下:

packagecom.free.chart;
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调用

publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(newDrawTextStudy(this));
}

免责声明:文章转载自《android 通过canvas旋转 绘制文字 竖直等不同方向的显示》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇git合并代码到dev用法nginx安装部署+增加媒体播放模块下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

当微信小程序遇到AR(三)

当微信小程序遇到AR,会擦出怎么样的火花?期待与激动...... 通过该教程,可以从基础开始打造一个微信小程序的AR框架,所有代码开源,提供大家学习。 本课程需要一定的基础:微信开发者工具,JavaScript,Html,Css 第三章:基石-接入Three.js 【前情提要】 上一章,我们已经可以在微信小程序中访问摄像头,并且获得每一帧的数据了。接下...

html5中的Canvas对图片的一些修改

先展示一下效果: 左边是处理前的原图,右边是经过canvas处理之后的效果。 html代码如下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title><...

canvas基础2--绘制图形

栅格 绘制矩形 不同于SVG,HTML中的元素canvas只支持一种原生的图形绘制:矩形。所有其他的图形的绘制都至少需要生成一条路径。不过,我们拥有众多路径生成的方法让复杂图形的绘制成为了可能。 首先,我们回到矩形的绘制中。canvas提供了三种方法绘制矩形: fillRect(x, y, width, height) 绘制一个填充的矩形 strokeR...

软件项目技术点(7)——在canvas上绘制自定义图形

AxeSlide软件项目梳理   canvas绘图系列知识点整理 图形种类 目前我们软件可以绘制出来的形状有如下这几种,作为开发者我们一直想支持用户可以拖拽的类似word里面图形库,但目前还没有找到比较合适的库。 下图中所有的图形都是我们自己写代码在canvas上绘制方法出来的,可以改变实心/空心,改变颜色,大小宽高,线条弯曲度,透明度等。 父类sha...

js基础(使用Canvas画图)

HTML5的元素提供了一组JavaScript API,让我们可以动态地创建图形和图像。 图形是在一个特定的上下文中创建的,而上下文对象目前有两种。第一种是2D上下文,可以执行原始的绘图操作, 比如: 设置填充、描边颜色和模式; 绘制矩形; 绘制路径; 绘制文本; 创建渐变和模式。 第二种是3D上下文,即WebGL上下文。WebGL是从OpenGLES...

android Bitmap用法总结

1、Drawable→Bitmap public staticBitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap =Bitmap .createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(),...