我無法找到任何地方有提到如何測量Textview中的getTextSize()。從視覺測試來看,它似乎不包括下行,但似乎包括上行。它似乎也不是從基線開始的。Android TextView的getTextSize()它包括下行,上行
http://en.wikipedia.org/wiki/Descender
這是它的但是從谷歌羅曼蓋伊最近剛剛提到忽略了問題的一部分。
http://www.mail-archive.com/[email protected]/msg08514.html
,因爲我需要這個,因爲我用化合物可繪製,我需要能夠被拉伸對準在不同設備上的文字。
這裏是代碼我用於測試的化合物,可繪製觸及了一圈邊緣
tvData.setTextSize(TypedValue.COMPLEX_UNIT_PX, 100);
tvData.setText("agB5ãÂ");
int size = (int)tvData.getTextSize();
Drawable img = getResources().getDrawable(R.drawable.circle_white_full_72).mutate();
img.setBounds(0 , 0 , size , size);
tvData.setCompoundDrawables(null, null, img, null);
下面是結果
,你可以看到它似乎不使用伸和上行者。
這裏是繪製的圖像,如果其他人想測試 http://i.imgur.com/Yhf8b.png
當使用
int size = (int)tvData.getTextSize() *80/100;
下面是結果改變圖像的文字大小的80%,與圖像換位上100%圖像的頂部。也許setCompoundrawables是做它自己的縮放
我試圖測量的字體和繪製的中點,並將其關閉。這是一個突出顯示它的圖像
最後,我將可繪製的50像素向左移動,然後測量輸出,它是字體文本基線到基線的高度的一半,因爲setTextSize設置爲100px。
Android必須使用其他佈局來縮放和定位複合繪圖。也許我應該爲此創建另一個問題。 這是一個突出顯示基線到基線的圖像。
我知道字體高度意味着「包括上升,但不是下降」,但我似乎無法找到一個權威的參考來回答你的問題。所以現在,傳聞證據必須這樣做:我一直把「字體高度」理解爲你所描述的那種。 – Barend
想一想,「從基線到基線」是等價的,並且在域內更有意義。 – Barend
@BarendGarvelink我相信這將是領先的。 – kcoppock