我有一个水平定向的LinearLayout,带有ImageView和TextView。 TextView具有1位或2位数字的文本。
我需要的是在ImageView图像的高度中将TextView的文本大小设置为完全相同。
我知道我可以获得ImageView的图像高度,但是如何将textSize设置为相应的高?
答案 0 :(得分:1)
返回视图的高度。返回
<强>返回强>
视图的高度,以像素。
将默认文本大小设置为给定值,解释为“缩放” 像素“单位。此大小根据电流密度调整 用户字体大小首选项。
<强>参数强>
尺寸 缩放像素尺寸。
这基本上意味着您需要将高度(px)转换为文本高度(sp):
float density = getResources().getDisplayMetrics().scaledDensity;
float textHeight = imageHeight / density;
答案 1 :(得分:0)
为(图像视图和textview)提供恒定的高度宽度...或尝试scaleType =“fitxy”......
答案 2 :(得分:0)
您可以尝试:
float height = imageView.getHeight();
TextView tv = new TextView(context);
tv.setTextSize(height)
我不确定这会完全符合您的要求,但这是我看到的最明显的起点。
答案 3 :(得分: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的文本大小将与图像一样高