自定義控制元件中draw()方法基線的計算
Canvas.drawText(String text, float x, float y,Paint paint)方法
第一個引數 text 是需要繪製的文字
第二個引數 x 是文字開始的位置
第三個引數 y 是基線的位置
第四個引數 paint 傳畫筆
其中第三個引數基線的位置計算方法
fontMetricsInt.top是從文字的基線開始到文字頂部的距離,是一個負值
fontMetricsInt.bottom是從文字的基線開始到文字底部的距離,是一個正值
所以基線的位置應該為:
基線到文字中點的距離 = (文字頂部到基線的距離 - 文字到基線的底部距離) / 2 - 文字到基線頂部的距離;
基線位置y = 文字高度的一半h + 基線到文字中點的距離;
程式碼如下:
Paint.FontMetricsInt fontMetricsInt = mPaint.getFontMetricsInt();
int dy = (fontMetricsInt.top - fontMetricsInt.bottom) / 2 - fontMetricsInt.top;
// 基線 y 的位置
int baseLine = getHeight()/2 + dy;
相關推薦
自定義控制元件中draw()方法基線的計算
Canvas.drawText(String text, float x, float y,Paint paint)方法 第一個引數 text 是需要繪製的文字 第二個引數 x 是文字開始的位置 第三個引數 y 是基線的位置 第四個引數 paint 傳畫筆 其中第三個引數基線的位置計算方
asp.net中使用者自定義控制元件呼叫另外一個使用者自定義控制元件中的方法
昨天同事問我一個問題,說是在一個頁面中有二個使用者自定義控制元件,他現在想在其中一個使用者自定義控制元件中呼叫另外一個使用者自定義控制元件的一個方法。當時感覺很奇怪,為什麼要這樣呢。可是他說他要完成這樣一個功能,所以我就簡單的用一個反射的功能來完成它。試了一下,還行功能可以實
WPF自定義控制元件中使用了RadioButton後,多次使用該控制元件出現的死迴圈解決方法
最近在專案中需要用到RadioButton,所以在自定義控制元件中使用了一組RadioButton,使用一個預設的groupname,也就是這個goupname給後來的問題埋下了地雷。 定義大致如下: <Grid> <Label Height ="50" W
徹底搞懂自定義控制元件中的四個構造方法
在上一篇部落格動手實現餅圖控制元件寫完以後,有些小夥伴說講得不夠細,建議從最基本開始講起,比如建構函式都是什麼?我覺得說得很有道理,正好自己也不夠了解自定義控制元件中的4個構造方法的具體呼叫時機和它們各自的引數作用,今天終於有時間把這部分內容進行學習整理,順便分享給那
在自定義控制元件中啟動一個活動時出現的undefin的錯誤問題
public class TitleLayout extends LinearLayout{ public TitleLayout(Context context, AttributeSet attrs) { &nb
C#中的自定義控制元件中的屬性、事件及一些相關特性的總結
今天學習了下C#使用者控制元件開發新增自定義屬性的事件,主要參考了MSDN,總結並實驗了一些用於開發自定義屬性和事件的特性(Attribute)。 在這裡先說一下我的環境: 作業系統:Windows7旗艦版(Service Pack 1) VS版本:Microsoft
wpf 自定義控制元件中ElementName和DataContext之間的衝突
現在發現一個問題,如果在xaml中某個控制元件的屬性通過ElementName綁定了。 大概程式碼如下: /// <summary> /// 輸入點名字 /// </summary> public string Titl
關於在自定義控制元件中事件不響應的問題
今天突然遇到一個問題,就是在一個自定義控制元件中無法響應事件,遇到這個問題後,馬上想到了google,查了好久都沒有解決答案 無賴只好自己來排除出去. 我的這個自定義的控制元件中都幾個Textbox,因為有一些特殊要求,所以就加了一些驗證控制元件,然後上面
資原始檔打包到Web自定義控制元件中應用
ASP.NET 2.0提供的Web Resources管理模型,很好的解決了image、css、script等外部資源的管理問題。解決方案如下: 1.設定你需要打包的檔案的Build Action property為Embedded Resource. 2、註冊資原始檔:(1)一般情況下,在AssemblyI
iOS開發學習-自定義控制元件賦值問題--在model的set方法中給控制元件賦值
在自定義控制元件的過程中,剛開始的時候碰到問題是如何給各控制元件動態賦值,最初的想法是把各控制元件屬性放在.h檔案中定義.然後在控制器內獲取資料一一賦值(可行),但是這樣就增加了控制器中的程式碼,比如給定一個場景: collectionViewCell中,有10個控制元件,需要顯示10個數據,這
androidの自定義控制元件View在Activity中使用findByViewId得到結果為null,解決方法。。
androidの自定義控制元件View在Activity中使用findByViewId得到結果為null 1. 大家常常自定義view,,然後在xml 中新增該view 元件。。如果在Activity 中使用findByViewId 方法獲取該view 時候,返回物件總為
C#中自定義控制元件隱藏基類成員(屬性、方法和事件)的方法
編寫自定義控制元件時,總是繼承C#中提供的Control類,而Control類是C#中所有窗體控制元件的基類,裡面定義了大量的屬性、方法和事件,而很多基類成員在自定義控制元件中可能不需要,因為編寫者會希望在自定義控制元件中隱藏這些成員,避免使用者呼叫這些成員。
Android自定義控制元件系列:詳解onMeasure()方法中如何測量一個控制元件尺寸(一)
轉載請註明出處:http://blog.csdn.net/cyp331203/article/details/45027641 今天的任務就是詳細研究一下protected void onMeasure(int widthMeasureSpec, int he
Android自定義控制元件系列七:詳解onMeasure()方法中如何測量一個控制元件尺寸(一)
自定義view/viewgroup要重寫的幾個方法:onMeasure(),onLayout(),onDraw()。(不熟悉的話可以檢視專欄的前幾篇文章:)。 今天的任務就是詳細研究一下protected void onMeasure(int wid
在自定義控制元件的過程中犯下的錯,在呼叫有三個引數的構造方法時this(context,null,0);第二個引數為空,在Activity中 findViewById找到對應的控制元件時
在自定義控制元件的過程中犯下的錯,在呼叫有三個引數的構造方法時this(context,null,0);第二個引數為空,在Activity中 findViewById找到對應的控制元件,在給控制元件設
Android中引入佈局和和自定義控制元件
首先是引入佈局: 1.我們自己新建一個layout,就是一個標題欄。 2.然後在我們的mainactivity_layout中使用一個語句就可以實現。 <?xml version="1.0" encoding="utf-8"?> <LinearLayout
解決自定義控制元件View在MainActivity中findviewbyid為空的問題
同事在自定義轉盤的程式碼里加了一個介面回撥,一直崩潰,一直以為是介面的問題 ,後來才發現是view中建構函式的問題 public Lucky(Context context) { this(context,null); } public Lucky(
一對一視訊交友原始碼中關於圖片載入和部分自定義控制元件的原始碼
有這麼一部分原始碼,他們不如音視訊採集、播放部分的原始碼顯得那麼重要,但他們的存在使頁面看起來更美觀流暢,他們就是: 一、關於圖片載入的一段程式碼: 1、載入原圖,即沒有壓縮、裁剪、變換之前的圖,保持了原圖的大小、尺寸和解析度。 public static void displaySou
一起Talk Android吧(第一百回:Android中使用自定義控制元件)
各位看官們,大家好,上一回中咱們說的是Android中使用自定義佈局的例子,這一回說的例子是Android中使用自定義控制元件。閒話休提,言歸正轉。讓我們一起Talk Android吧! 看官們,我們在上一回中通過自定義佈局巧妙地實現了分隔線,不過這個分隔線中看
自定義控制元件不能在winform程式碼中建立
怎麼用程式碼清空除錯的時候輸出裡面的內容Asp.NetCore貌似不能執行在樹莓派上面問了很多人說.NetCore有ARM版本我倒是沒找到怎麼用程式碼清空除錯的時候輸出裡面的內容Asp.NetCore貌似不能執行在樹莓派上面問了很多人說.NetCore有ARM版本我倒是沒找到