`
xixinfei
  • 浏览: 414073 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Canvas drawText

 
阅读更多

String str ="测试字符串";

  int len = str.getBytes().length;
  int w = len *16;
  int h =32;
  Bitmap strBitmap =Bitmap.createBitmap(w, h,Bitmap.Config.RGB_565);
  Canvas c =newCanvas(strBitmap);
  Paint paint =newPaint(Paint.ANTI_ALIAS_FLAG);
  paint.setTextSize(35);
  Typeface tf =Typeface.createFromAsset(getAssets(),"caiyun");
  paint.setTypeface(tf);
  paint.setColor(0xFFFFFFFF);
  paint.setTextAlign(Align.LEFT);

  FontMetrics fm = paint.getFontMetrics();
  c.drawText(str,0, h + fm.top - fm.ascent, paint);
  c.save();

 

其中 c.drawText(str, 0, h + fm.top - fm.ascent, paint);
是在指定位置开始输出文字,而其中“h + fm.top - fm.ascent”就是这里面的关键,h相当与一个参照(我这里是要把文字写到一个bitmap上,所以h就是bitmap的基准),fm.top - fm.ascent是开始输出文字的baseline,不太明白的请看 Canvas.drawText的说明:
Draw the text, with origin at (x,y), using the specified paint. The origin is interpreted based on the Align setting in the paint. 
Parameters:
text The text to be drawn
x The x-coordinate of the origin of the text being drawn
y The y-coordinate of the origin of the text being drawn
paint The paint used for the text (e.g. color, size, style)

这个origin就是文字baseline基线的坐标。

 

另外关于Typeface,比较遗憾是不太明白如何设置其他中文字体,比如宋体,楷体之类的,
Typeface.createFromAsset(getAssets(), "caiyun");
分享到:
评论

相关推荐

    Android Canvas drawText文字居中的一些事(图解)

    Android Canvas drawText 文字居中的一些事(图解) 在 Android 开发中,绘制居中文字是非常常见的需求。通过使用 Canvas 的 drawText 方法,可以实现文字的绘制,但是文字的居中是一个需要注意的问题。本文将通过...

    android利用Paint在Canvas上实现竖排写字

    - **Canvas**:Canvas是Android中的画布,提供了各种绘制方法,如drawRect(), drawText()等,让我们能够在屏幕上绘制图形和文本。 - **Paint**:Paint是Android的画笔,它定义了图形和文本的样式,如颜色、字体...

    android canvas drawText()文字居中效果

    `drawText()`方法是Canvas的一个关键函数,用于在指定位置绘制文本。本篇文章将深入探讨如何利用`drawText()`实现文字居中效果。 首先,`drawText(String text, float x, float y, Paint paint)`方法的参数含义如下...

    Android Canvas的drawText()与文字居中方案详解

    `drawText()`方法是Canvas提供的一个关键功能,用于在指定的位置绘制文本。本文将深入解析`drawText()`的用法及其与文字居中相关的策略。 首先,我们来看一下`drawText()`的几个重载方法: 1. `drawText(String ...

    html5 canvas的绘制文本自动换行的示例代码

    本文介绍怎么解决canvas绘图过程中,drawText的换行问题,先看一个大家平时在canvas绘制文本都会遇到的问题: 一个150*100的canvas画布,加个边框明显边界 <canvas id=canvas xss=removed width=200px height=100px...

    Android 自定义画布canvas 实现绘制和清空画布功能

    canvas.drawText("Hello, Canvas!", 20, 60, paint); // 绘制文本 ``` 5. **清空画布** 清空画布通常意味着擦除当前视图中的所有绘制内容。在Android中,我们无法直接“清空”Canvas,但可以通过重新绘制背景色...

    Android中Canvas绘图基础详解

    该代码是一个完整的Android工程,详细演示如了如何使用Android中的各种drawXXX方法,以及画笔Paint如何影响绘制的效果。 具体参见博文: http://blog.csdn.net/iispring/article/details/49770651

    微信小程序canvas实现文字缩放

    在小程序中,我们可以使用`wx.createCanvasContext`方法来获取canvas的绘图上下文对象,这个对象提供了如`drawText`、`fillText`等方法用于在canvas上绘制和填充文字。而实现文字缩放的关键在于调整这些方法中的字体...

    Delphi Canvas方法在图片上写入文字.rar

    除了TextOut,还有其他与文字相关的Canvas方法,如DrawText和FormatText,它们提供了更高级的排版和格式化功能。DrawText可以控制文字的对齐方式、背景填充等,FormatText则支持复杂的文本布局,包括换行、缩进等。 ...

    自定义view(Paint和Canvas)

    canvas.drawText("Hello, World!", 250, 150, paint); // 绘制红色文本 } ``` 通过结合使用Paint和Canvas,开发者可以创建出丰富多彩的自定义视图,满足各种复杂的UI需求。在实际项目中,还可以结合MotionEvent和...

    使用Canvas类绘制android机器人

    Canvas提供了许多方法,如drawRect(), drawCircle(), drawText()等,这些方法接收不同的参数,如颜色、位置等,以完成各种绘制任务。 在创建Android机器人的过程中,我们通常会先定义一个Bitmap对象,这个Bitmap...

    Canvas详解及代码绘制安卓机器人

    Canvas是Android系统中用于2D图形绘制的核心组件,它提供了丰富的功能来在屏幕上画出各种形状、图像和文字。在Android应用开发中,Canvas经常被用来实现自定义视图、动画效果以及游戏画面等。本篇文章将深入解析...

    android Canvas类介绍

    4. `drawText(String text, float x, float y, Paint paint)`: 在指定位置绘制文本。 5. `drawBitmap(Bitmap bitmap, float left, float top, Paint paint)`: 在Canvas上绘制Bitmap。 Canvas的绘图操作都是基于坐标...

    HTML5canvas自适应手机屏幕大小的一种解决方案.docx

    - **实现方法**: 使用双缓冲机制,即在另一个缓冲Canvas上绘图和绘制文字,最后根据`scaleH`进行缩放,并将缓冲Canvas的内容绘制到屏幕Canvas上。 ```javascript let canvasBuffer = document.createElement(...

    Android下使用Canvas画图

    - `drawText()`: 在指定位置绘制文本。 4. **绘图属性** - `setColor()`: 设置当前颜色,用于后续的填充操作。 - `setStrokeWidth()`: 设置线条宽度。 - `setPaint()`: 使用Paint对象设置更复杂的绘图属性,如...

    源码

    `drawText()`允许开发者在Canvas上精确地放置文字,这对于创建自定义视图、日历应用、游戏等具有高度视觉定制的应用程序至关重要。 首先,让我们理解`drawText()`的基本用法。在Java代码中,你可以使用Canvas对象的...

    Android DrawText字符串的绘制

    在 Android 平台上,DrawText 字符串的绘制是通过使用 Canvas 和 Paint 对象来实现的。 在上面的代码中,我们可以看到,TextUtil 类是用于绘制字符串的工具类。该类中包含了多个变量,用于存储字符串的绘制信息,...

Global site tag (gtag.js) - Google Analytics