2015-02-10 4 views
0

Я получил горизонтально ориентированную LinearLayout с ImageView и TextView. TextView имеет текст с 1 или 2 цифрами.setTextSize в соответствии с размером изображения ImageView

Мне нужно установить размер текста TextView точно так же, как в изображении образа ImageView.

Я знаю, что могу получить высоту изображения ImageView, но как я могу сделать textSize как высокий соответственно?

+0

Трудно, я бы сказал, попытка и ошибка – webo80

ответ

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; 
Смежные вопросы