Как динамически установить высоту textview для Android - PullRequest
12 голосов
/ 19 августа 2010

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

<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"
/>

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

Спасибо заранее.

Ответы [ 3 ]

17 голосов
/ 19 августа 2010

Как сказал Константин, этот код, вероятно, будет игнорироваться после того, как вы превысите 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);

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

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

TextView tv = (TextView)findViewById(R.id.TextView02);
tv.setMovementMethod(ScrollingMovementMethod.getInstance());
3 голосов
/ 06 апреля 2013
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.
0 голосов
/ 19 августа 2010

Remove android: maxLines = "4", ограничивает высоту вашего просмотра 4 строками текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...