2015-02-10 40 views
0

我得到了一個水平方向的帶有ImageView和TextView的LinearLayout。 TextView具有1位或2位數字的文本。setTextSize相應ImageView的圖像大小

我需要的是將TextView的文本大小設置爲在ImageView圖像的高度中完全相同。

我知道我可以得到ImageView的圖像高度,但我怎樣才能使textSize相應地高?

+0

難,我會說嘗試和錯誤 – webo80 2015-02-10 14:35:01

回答

0

好了,我發現自己下面:

首先我們需要找到一個ImageView的圖像的真正高度 - 它不像ImageView那麼高,所以這裏解釋得很好:How to get the width and height of an android.widget.ImageView?

接下來我們設置文本的高度:

textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, 
imageView.getMeasuredHeight()*(imageView.getMeasuredHeight()/ 
imageView.getMeasuredWidth())); 

這意味着我們設定TEXTSIZE在原始像素,那麼我們就高度,並與高度的圖像的比率乘以與寬度這樣的TextView的文字大小將是完全高作爲圖像

0

給予一定的高度,寬度都(圖像視圖和TextView的)...或者嘗試scaleType = 「fitxy」 ......

0

你可以試試:

float height = imageView.getHeight(); 
TextView tv = new TextView(context); 
tv.setTextSize(height) 

我不知道這將完全符合你的要求,但這是我看到的最明顯的起點。

1

View.getHeight()

返回你的視線的高度。返回

返回
       你的視線的高度,在像素

TextView.setTextSize(float)

設置默認文本大小爲給定值,解釋爲 「縮放 像素」 單位。此大小根據當前密度和 用戶字體大小首選項進行調整。

參數
      大小        的縮放的像素大小。

這基本上意味着你需要的高度(像素),文本高度(SP)轉換:

float density = getResources().getDisplayMetrics().scaledDensity; 
float textHeight = imageHeight/density;