2015-04-18 2 views
0

Я в настоящее время использую следующий макет эскиз, чтобы сделать мой макет приложения:Как центрировать TextView и размер его содержание, чтобы заполнить весь * любой * Компоновка

<ScrollView> 
    <LinearLayout HORIZONTAL orientation> 
     <Programmed LinearLayout VERTICAL orientation> 
     <Programmed ImageView/> 
     <*ANY*Layout> 
      <Programmed AutoResizeTextView/> 
     <*ANY*Layout/> 
     <LinearLayout/> 
     <Programmed View as Separator/> 
    <LinearLayout/> 
    (Repeats till screen heigth complete) 
    <LinearLayout/> 
<ScrollView/> 

Приведенные выше результаты макета в следующий результат:

listView

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

Дело в том, я не знаю, есть ли что-нибудь в моем коде намеренно отказывая мне центрировать текст, но я попытался все эти варианты и не получилось:

TextView.gravity = Gravity.CENTER (tried CENTER_HORIZONTAL also) 
*ANY*Layout.gravity = Gravity.CENTER (also CENTER_HORIZONTAL) 
RelativeLayoutParam.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE); 

Так вот мой код TextView, если есть какие-либо проблемы с этим делает меня неспособным к центру его, пожалуйста, дайте мне знать:

RelativeLayout lb = new RelativeLayout(this); 
AutoResizeTextView tv = new AutoResizeTextView(this); 
//Fix for android 4.0.4 versions and earlier 
final String DOUBLE_BYTE_SPACE = "\u3000"; 
String fixString = ""; 
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB_MR1 
     && android.os.Build.VERSION.SDK_INT <= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { 
    fixString = DOUBLE_BYTE_SPACE; 
} 
tv.setText(fixString + "The text" + fixString); 
RelativeLayout.LayoutParams lptv = new RelativeLayout.LayoutParams(
     RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
lptv.addRule(RelativeLayout.RIGHT_OF,iv.getId()); 
//End of Fix 
lb.setLayoutParams(lptv); 
tv.setText(name); 
la.addView(lb); 
lb.addView(tv); 
tv.setGravity(Gravity.CENTER); 
layout.addView(la); 

Так что я ясно в результате ожидается, здесь картина черчения ожидаемого результат: eXPECTEDresult

Заранее спасибо.

+0

r u создание пользовательского списка с помощью xml или программно – Hanuman

ответ

0

Из чего я понимаю, вы хотите поставить горизонтальные LinearLayout рядами внутри вертикали LinearLayout. Для того, чтобы TextView сек растянуть по горизонтали вы можете дать им width от 0 и weight из 1.

Для того, чтобы их растянуть по вертикали Вы можете сделать ImageView и LinearLayoutwrap_content и TextViewmatch_parent. Или установите фиксированный размер.

Как только вы получите TextView, чтобы занять все пространство (вы можете проверить это, указав цвет фона), вы можете использовать библиотеку, такую ​​как AutoFitTextView, чтобы текст расширялся, чтобы заполнить это пространство.

Для повышения эффективности рассмотрите возможность использования ListView вместо ScrollView с вертикальной комбинацией LinearLayout.

+0

Спасибо! Я использовал http://www.learn2crack.com/2013/10/android-custom-listview-images-text-example.html и сделал это с помощью ListView –

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

  • Нет связанных вопросов^_^