我得到了一个水平方向的带有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