Android編程之繪制文本(FontMetrics)實(shí)現(xiàn)方法
本文實(shí)例講述了Android編程之繪制文本(FontMetrics)實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
Canvas 作為繪制文本時(shí),使用FontMetrics對(duì)象,計(jì)算位置的坐標(biāo)。
它的思路和java.awt.FontMetrics的基本相同。
FontMetrics對(duì)象
它以四個(gè)基本坐標(biāo)為基準(zhǔn),分別為:
FontMetrics.top
FontMetrics.ascent
FontMetrics.descent
FontMetrics.bottom
該圖片將如下

代碼如下:
Paint textPaint = new Paint( Paint.ANTI_ALIAS_FLAG); textPaint.setTextSize( 35); textPaint.setColor( Color.WHITE); // FontMetrics對(duì)象 FontMetrics fontMetrics = textPaint.getFontMetrics(); String text = "abcdefghijklmnopqrstu"; // 計(jì)算每一個(gè)坐標(biāo) 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描畫(huà) Paint baseLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);> baseLinePaint.setColor( Color.RED); canvas.drawLine(0, baseY, getWidth(), baseY, baseLinePaint); // Base描畫(huà) canvas.drawCircle( baseX, baseY, 5, baseLinePaint); // TopLine描畫(huà) Paint topLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG); topLinePaint.setColor( Color.LTGRAY); canvas.drawLine(0, topY, getWidth(), topY, topLinePaint); // AscentLine描畫(huà) Paint ascentLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG); ascentLinePaint.setColor( Color.GREEN); canvas.drawLine(0, ascentY, getWidth(), ascentY, ascentLinePaint); // DescentLine描畫(huà) Paint descentLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG); descentLinePaint.setColor( Color.YELLOW); canvas.drawLine(0, descentY, getWidth(), descentY, descentLinePaint); // ButtomLine描畫(huà) Paint bottomLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG); bottomLinePaint.setColor( Color.MAGENTA); canvas.drawLine(0, bottomY, getWidth(), bottomY, bottomLinePaint);
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
Android Https證書(shū)過(guò)期的兩種解決方案
應(yīng)該有很多小伙伴遇到這樣一個(gè)問(wèn)題,在線上已發(fā)布的app里,關(guān)于https的cer證書(shū)過(guò)期,從而導(dǎo)致app所有網(wǎng)絡(luò)請(qǐng)求失效無(wú)法使用,這篇文章主要介紹了Android Https證書(shū)過(guò)期的解決方案,需要的朋友可以參考下2022-12-12
Android 用RxBinding與RxJava2實(shí)現(xiàn)短信驗(yàn)證碼倒計(jì)時(shí)功能
這篇文章主要介紹了Android 用RxBinding與RxJava2實(shí)現(xiàn)短信倒計(jì)時(shí)功能示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
Android實(shí)現(xiàn)手勢(shì)劃定區(qū)域裁剪圖片
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)手勢(shì)劃定區(qū)域裁剪圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
AndroidStudio4.0 New Class的坑(小結(jié))
這篇文章主要介紹了AndroidStudio4.0 New Class的坑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Android浮動(dòng)窗口實(shí)現(xiàn)原理及代碼實(shí)例
這篇文章主要介紹了Android浮動(dòng)窗口實(shí)現(xiàn)原理及代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
在Android中如何使用DataBinding詳解(Kotlin)
這篇文章主要給大家介紹了關(guān)于在Android中如何使用DataBinding(Kotlin)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
android中RecycleView添加下滑到底部的監(jiān)聽(tīng)示例
本篇文章主要介紹了android中RecycleView添加下滑到底部的監(jiān)聽(tīng)示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03

