Подтвердить что ты не робот

Как динамически установить высоту текста и андроида

В моем приложении мне нужно установить динамический текст в текстовое представление, чтобы я динамически его изменял. Я установил:

<TextView
android:id="@+id/TextView02" 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="normal"
android:text="Frontview"
android:layout_weight="1"
android:gravity="center_vertical"
android:textColor="#0099CC"
android:singleLine="false"
android:maxLines="4"
android:ellipsize="marquee"
/>

Моя высота текста не выходит за пределы двух строк, и текст обрезается. Кто-нибудь может помочь?

Thanx заранее.

4b9b3361

Ответ 1

Как сказал Константин, этот код, вероятно, будет проигнорирован после превышения 4 строк, если вы не удалите android:maxLines="4"

Вот как вы бы установили высоту в коде:

TextView tv = (TextView) findViewById(R.id.TextView02);
int height_in_pixels = tv.getLineCount() * tv.getLineHeight(); //approx height text
tv.setHeight(height_in_pixels);

Если вы хотите использовать dip-единицы, которые позволяют вашему приложению масштабироваться по разным размерам экрана, вы должны умножить количество пикселей на значение, возвращаемое getResources().getDisplayMetrics().density;

Это зависит от вашего желаемого поведения, но вы также можете подумать о том, что размер TextView фиксирован и позволяет пользователю прокручивать текст:

TextView tv = (TextView)findViewById(R.id.TextView02);
tv.setMovementMethod(ScrollingMovementMethod.getInstance());

Ответ 2

TextView tv;
----------------------
tv=new TextView(this);   // you take TextView id (R.id.textview1)

LinearLayout.LayoutParams Params1 = new LinearLayout.LayoutParams(15,50);
tv.setLayoutParams(Params1);   //you take linearlayout and relativelayout.

Ответ 3

Удалить андроид: maxLines = "4", он ограничивает высоту вашего представления четырьмя строками текста.