Android编程之绘制文本(FontMetrics)实现方法

 更新时间:2015年12月01日 12:46:35   作者:fengyee_zju  
这篇文章主要介绍了Android编程之绘制文本(FontMetrics)实现方法,结合实例形式较为详细的分析了Android使用FontMetrics对象绘制文本的相关技巧,需要的朋友可以参考下

本文实例讲述了Android编程之绘制文本(FontMetrics)实现方法。分享给大家供大家参考,具体如下:

Canvas 作为绘制文本时,使用FontMetrics对象,计算位置的坐标。

它的思路和java.awt.FontMetrics的基本相同。

FontMetrics对象

它以四个基本坐标为基准,分别为:

FontMetrics.top
FontMetrics.ascent
FontMetrics.descent
FontMetrics.bottom

该图片将如下

代码如下:

Paint textPaint = new Paint( Paint.ANTI_ALIAS_FLAG); 
textPaint.setTextSize( 35); 
textPaint.setColor( Color.WHITE); 
// FontMetrics对象 
FontMetrics fontMetrics = textPaint.getFontMetrics(); 
String text = "abcdefghijklmnopqrstu"; 
// 计算每一个坐标 
float baseX = 0; 
float baseY = 100; 
float topY = baseY + fontMetrics.top; 
float ascentY = baseY + fontMetrics.ascent; 
float descentY = baseY + fontMetrics.descent; 
float bottomY = baseY + fontMetrics.bottom; 
// 绘制文本 
canvas.drawText( text, baseX, baseY, textPaint); 
// BaseLine描画 
Paint baseLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);> 
baseLinePaint.setColor( Color.RED); 
canvas.drawLine(0, baseY, getWidth(), baseY, baseLinePaint); 
// Base描画 
canvas.drawCircle( baseX, baseY, 5, baseLinePaint); 
// TopLine描画 
Paint topLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG); 
topLinePaint.setColor( Color.LTGRAY); 
canvas.drawLine(0, topY, getWidth(), topY, topLinePaint); 
// AscentLine描画 
Paint ascentLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG); 
ascentLinePaint.setColor( Color.GREEN); 
canvas.drawLine(0, ascentY, getWidth(), ascentY, ascentLinePaint); 
// DescentLine描画 
Paint descentLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG); 
descentLinePaint.setColor( Color.YELLOW); 
canvas.drawLine(0, descentY, getWidth(), descentY, descentLinePaint); 
// ButtomLine描画 
Paint bottomLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG); 
bottomLinePaint.setColor( Color.MAGENTA); 
canvas.drawLine(0, bottomY, getWidth(), bottomY, bottomLinePaint); 

希望本文所述对大家Android程序设计有所帮助。

相关文章

  • 仿Iphone中搜索结果的布局详解

    仿Iphone中搜索结果的布局详解

    本篇文章是对仿Iphone中搜索结果的布局进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 利用Android封装一个有趣的Loading组件

    利用Android封装一个有趣的Loading组件

    这篇文章我们将利用Android封装一个可以自定义配置前景色和背景色的Loading组件,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-08-08
  • Android Https证书过期的两种解决方案

    Android Https证书过期的两种解决方案

    应该有很多小伙伴遇到这样一个问题,在线上已发布的app里,关于https的cer证书过期,从而导致app所有网络请求失效无法使用,这篇文章主要介绍了Android Https证书过期的解决方案,需要的朋友可以参考下
    2022-12-12
  • Android 用RxBinding与RxJava2实现短信验证码倒计时功能

    Android 用RxBinding与RxJava2实现短信验证码倒计时功能

    这篇文章主要介绍了Android 用RxBinding与RxJava2实现短信倒计时功能示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Android实现手势划定区域裁剪图片

    Android实现手势划定区域裁剪图片

    这篇文章主要为大家详细介绍了Android实现手势划定区域裁剪图片,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • AndroidStudio4.0 New Class的坑(小结)

    AndroidStudio4.0 New Class的坑(小结)

    这篇文章主要介绍了AndroidStudio4.0 New Class的坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Android自定义加载圈动画效果

    Android自定义加载圈动画效果

    这篇文章主要为大家详细介绍了Android自定义加载圈动画效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Android浮动窗口实现原理及代码实例

    Android浮动窗口实现原理及代码实例

    这篇文章主要介绍了Android浮动窗口实现原理及代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 在Android中如何使用DataBinding详解(Kotlin)

    在Android中如何使用DataBinding详解(Kotlin)

    这篇文章主要给大家介绍了关于在Android中如何使用DataBinding(Kotlin)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • android中RecycleView添加下滑到底部的监听示例

    android中RecycleView添加下滑到底部的监听示例

    本篇文章主要介绍了android中RecycleView添加下滑到底部的监听示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03

最新评论