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程序设计有所帮助。
相关文章
Templates实战之更优雅实现自定义View构造方法详解
本篇文章介绍如何利用Android Studio提供的Live Templates更优雅实现自定义View的构造方法,说句人话就是:简化自定义View构造参数模板代码的编写,实现自动生成,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-09-09Android Studio3.5开发工具(安卓开发工具)安装步骤详解
这篇文章主要为大家详细介绍了Android Studio3.5开发工具安装、安卓开发工具的安装步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2019-09-09Android开发SavedState Jetpack状态保存利器
这篇文章主要为大家介绍了Android开发SavedState Jetpack状态保存利器使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-08-08Android中RecyclerView实现分页滚动的方法详解
RecyclerView实现滚动相信对大家来说都不陌生,但是本文主要给大家介绍了利用Android中RecyclerView实现分页滚动的思路和方法,可以实现翻页功能,一次翻一页,也可以实现翻至某一页功能。文中给出了详细的示例代码,需要的朋友可以参考借鉴,下面来一起看看吧。2017-04-04Android使用WebView实现全屏切换播放网页视频功能
这篇文章主要介绍了Android使用WebView实现全屏切换播放网页视频功能,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下2019-07-07
最新评论