setTextSize相应于ImageView的图像大小

时间:2015-02-10 14:32:28

标签: android textview imageview text-size

我有一个水平定向的LinearLayout,带有ImageView和TextView。 TextView具有1位或2位数字的文本。

我需要的是在ImageView图像的高度中将TextView的文本大小设置为完全相同。

我知道我可以获得ImageView的图像高度,但是如何将textSize设置为相应的高?

4 个答案:

答案 0 :(得分:1)

View.getHeight()

  

返回视图的高度。返回

     

<强>返回
  视图的高度,以像素

TextView.setTextSize(float)

  

将默认文本大小设置为给定值,解释为“缩放”   像素“单位。此大小根据电流密度调整   用户字体大小首选项。

     

<强>参数
  尺寸 缩放像素尺寸。

这基本上意味着您需要将高度(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的文本大小将与图像一样高