我得到了一個水平方向的帶有ImageView和TextView的LinearLayout。 TextView具有1位或2位數字的文本。setTextSize相應ImageView的圖像大小
我需要的是將TextView的文本大小設置爲在ImageView圖像的高度中完全相同。
我知道我可以得到ImageView的圖像高度,但我怎樣才能使textSize相應地高?
我得到了一個水平方向的帶有ImageView和TextView的LinearLayout。 TextView具有1位或2位數字的文本。setTextSize相應ImageView的圖像大小
我需要的是將TextView的文本大小設置爲在ImageView圖像的高度中完全相同。
我知道我可以得到ImageView的圖像高度,但我怎樣才能使textSize相應地高?
好了,我發現自己下面:
首先我們需要找到一個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的文字大小將是完全高作爲圖像
給予一定的高度,寬度都(圖像視圖和TextView的)...或者嘗試scaleType = 「fitxy」 ......
你可以試試:
float height = imageView.getHeight();
TextView tv = new TextView(context);
tv.setTextSize(height)
我不知道這將完全符合你的要求,但這是我看到的最明顯的起點。
返回你的視線的高度。返回
返回
你的視線的高度,在像素。
設置默認文本大小爲給定值,解釋爲 「縮放 像素」 單位。此大小根據當前密度和 用戶字體大小首選項進行調整。
參數
大小 的縮放的像素大小。
這基本上意味着你需要的高度(像素),文本高度(SP)轉換:
float density = getResources().getDisplayMetrics().scaledDensity;
float textHeight = imageHeight/density;
難,我會說嘗試和錯誤 – webo80 2015-02-10 14:35:01