Android編程之繪制文本(FontMetrics)實(shí)現(xiàn)方法
本文實(shí)例講述了Android編程之繪制文本(FontMetrics)實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
Canvas 作為繪制文本時,使用FontMetrics對象,計(jì)算位置的坐標(biāo)。
它的思路和java.awt.FontMetrics的基本相同。
FontMetrics對象
它以四個基本坐標(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對象 FontMetrics fontMetrics = textPaint.getFontMetrics(); String text = "abcdefghijklmnopqrstu"; // 計(jì)算每一個坐標(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描畫 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程序設(shè)計(jì)有所幫助。
相關(guān)文章
Templates實(shí)戰(zhàn)之更優(yōu)雅實(shí)現(xiàn)自定義View構(gòu)造方法詳解
本篇文章介紹如何利用Android Studio提供的Live Templates更優(yōu)雅實(shí)現(xiàn)自定義View的構(gòu)造方法,說句人話就是:簡化自定義View構(gòu)造參數(shù)模板代碼的編寫,實(shí)現(xiàn)自動生成,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Android 獲取正在運(yùn)行的任務(wù)和服務(wù)的小例子
Android 獲取正在運(yùn)行的任務(wù)和服務(wù)的小例子,需要的朋友可以參考一下2013-05-05Android Studio3.5開發(fā)工具(安卓開發(fā)工具)安裝步驟詳解
這篇文章主要為大家詳細(xì)介紹了Android Studio3.5開發(fā)工具安裝、安卓開發(fā)工具的安裝步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09Android開發(fā)SavedState?Jetpack狀態(tài)保存利器
這篇文章主要為大家介紹了Android開發(fā)SavedState?Jetpack狀態(tài)保存利器使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Android自定義控件實(shí)現(xiàn)底部菜單(下)
這篇文章主要為大家詳細(xì)介紹了Android自定義控件實(shí)現(xiàn)底部菜單的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01Android中RecyclerView實(shí)現(xiàn)分頁滾動的方法詳解
RecyclerView實(shí)現(xiàn)滾動相信對大家來說都不陌生,但是本文主要給大家介紹了利用Android中RecyclerView實(shí)現(xiàn)分頁滾動的思路和方法,可以實(shí)現(xiàn)翻頁功能,一次翻一頁,也可以實(shí)現(xiàn)翻至某一頁功能。文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧。2017-04-04Android使用WebView實(shí)現(xiàn)全屏切換播放網(wǎng)頁視頻功能
這篇文章主要介紹了Android使用WebView實(shí)現(xiàn)全屏切換播放網(wǎng)頁視頻功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2019-07-07