Как динамически установить высоту текста и андроида
В моем приложении мне нужно установить динамический текст в текстовое представление, чтобы я динамически его изменял. Я установил:
<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 заранее.
Ответы
Ответ 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", он ограничивает высоту вашего представления четырьмя строками текста.