2014-07-06 4 views
-2

Итак, в моем приложении для Android есть много кнопок с TextView. Они имеют жестко заданные значения. Поэтому для больших экранов я снова должен определить значения. Итак, есть ли способ иметь динамический текст, который настраивается на размер экрана? Он должен всегда использовать один и тот же процент кнопки в разных размерах экрана. Было бы очень утомительно индивидуально изменять значения для разных размеров экрана.Динамический текст в XML

Примечание: Я хочу, чтобы это сделать в XML, а не в java-файле.

+0

Я предлагаю, чтобы кнопки немного расширялись, а не имели очень маленький текст. Также не забудьте использовать * sp * при указании размеров шрифта, поэтому он настраивается на меньшие экраны. – Simas

+0

Вы пытались использовать вес? –

+0

@ FrankN.Stein Как использовать вес для текста? Могу ли я получить фрагмент? – pblead26

ответ

1

Массы работают только в LinearLayouts (и производных).
Используются для равномерно Распространение ONE размер в процентах.
Хитрость заключается в том, чтобы установить пораженную измерение 0dp и вес к (он говорит: разделить РАВНОМЕРНОГО)

Небольшой пример: Горизонтальный Компоновка с 2 50% размера TextViews:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="16dp" 
    android:paddingRight="16dp" 
    android:orientation="horizontal" 
    > 
    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="@string/text1" 
    /> 
    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="@string/text2" 
    /> 
</LinearLayout> 

вы должны быть preared 2 строки в файле /res/values/strings.xml:
text1 и text2

Если вы хотите изменить proportio ns, вы можете изменить вес: 40% и 60%?
Просто установите весы (выберете): 40 и 60 или 4 и 6 или 0,4 и 0,6, ...

Очевидно, что вы можете использовать более 2 видов.

Кроме того, вы можете установить высоту вместо ширины (не вместе!).

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

+0

Так что если я хочу иметь ОДИН текст в ОДНОМ макете, но я не хочу, чтобы он покрывал 100% макета, может быть, 80%, так будет ли это хорошо, если я дам вес как 1? или я должен дать десятичное число? – pblead26

+0

Нет ... 0,8 (1 означает 100%). Но лучше, если тогда вы установите INVISIBLE TextView равным 0,2. –

Смежные вопросы