Как разместить текст по горизонтали и вертикали в TextView?

Как TextView текст по горизонтали и вертикали в TextView , чтобы он отображался точно в середине TextView в Android ?

Я предполагаю, что вы используете XML-макет.

  

Вы также можете использовать гравитационный center_vertical или center_horizontal соответствии с вашими потребностями.

и как @stealthcopter прокомментировал в java: .setGravity(Gravity.CENTER);

 android:gravity="center" 

Это сделает трюк

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

 textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 
 android:layout_centerInParent="true" 

Это работает при использовании RelativeLayout, где высота и ширина макета установлены на wrap_content.

Вы также можете использовать комбинацию:

 android:gravity="left|center" 

Затем, если ширина текста больше, чем «fill_parent», текст по-прежнему будет выровнен влево (не центрирован, как при гравитации, заданной только «центром»).

Применить гравитацию:

 TextView txtView = (TextView) findViewById(R.id.txtView); txtView.setGravity(Gravity.CENTER_HORIZONTAL); 

Для вертикали:

 txtView.setGravity(Gravity.CENTER_VERTICAL); 

В XML:

  

Если вы используете TableLayout, убедитесь, что гравитация TableRows также находится в центре. Иначе это не сработает. По крайней мере, это не сработало со мной, пока я не поставил центр тяжести TableRow в центр.

Например, например:

    

Вам необходимо установить TextView Gravity (Center Horizontal & Center Vertical) следующим образом:

 android:layout_centerHorizontal="true" 

а также

 android:layout_centerVertical="true" 

И динамически используя:

 textview.setGravity(Gravity.CENTER); textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 

Есть два способа сделать это.

Первый в XML-коде. Вам нужно обратить внимание на атрибут Gravity . Вы также можете найти этот атрибут в графическом редакторе; это может быть проще, чем XML EDITOR.

  

Для вашего конкретного сценария значения силы тяжести будут:

 center_vertical|center_horizontal 

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

По моему мнению,

 android:gravity="center" 

Это лучше чем,

 android:layout_centerInParent="true" 

который лучше, чем,

 android:layout_centerHorizontal="true" android:layout_centerVertical="true" 

по крайней мере, для форматирования текста.

Для линейной компоновки: в XML используйте что-то вроде этого

  

Для этого во время выполнения используйте что-то подобное в своей деятельности

 TextView textView1 =(TextView)findViewById(R.id.texView1); textView1.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 

Для относительной компоновки: в XML используйте что-то вроде этого

  

Для этого во время выполнения используйте что-то подобное в своей деятельности

 TextView textView1 =(TextView)findViewById(R.id.texView1); RelativeLayout.LayoutParams layoutParams = RelativeLayout.LayoutParams)textView1.getLayoutParams(); layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE); textView1.setLayoutParams(layoutParams); 

Использовать в файле XML.

Файл макета

  

или:

Используйте это внутри classа Java

 TextView textView =(TextView)findViewById(R.id.texviewid); textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 

Используйте это для относительной компоновки

 android:layout_centerInParent="true" 

и для другого макета

 android:gravity="center" 

При использовании гравитационных работ для TextView существует альтернативный метод, реализованный на уровне API 17 –

 textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER); 

Не знаю разницы, но он тоже работает. Однако только для уровня API 17 или выше.

В RelativeLayout ним будет хорошо.

И еще одна Button и все остальное, что вы можете добавить.

Следующие работы хорошо для меня.

   ...other button or anything else...  

Если высота и ширина TextView's являются wrap content тогда текст в TextView всегда будет центрирован. Но если ширина TextView's равна match_parent а height – match_parent или wrap_content тогда вы должны написать нижеприведенный код:

Для RelativeLayout:

    

Для LinearLayout:

    

Самый простой способ (что удивительно упоминается только в комментариях, следовательно, почему я отправляю в качестве ответа):

 textview.setGravity(Gravity.CENTER) 

Вы можете просто настроить gravity вашего текста в CENTER .

Если вы пытаетесь центрировать текст в TableRow в TableLayout, вот как я это сделал:

    

Вот мой ответ, который я использовал в своем приложении. Он показывает текст в центре экрана.

  

Если вы используете Relative Layout:

   

Если вы используете LinearLayout

  

Как и многие ответы, предлагаемые выше, отлично работают.

 android:gravity="center" 

Если вы хотите центрировать его только вертикально:

 android:gravity="center_vertical" 

или просто горизонтально:

 android:gravity="center_horizontal" 

Просто в вашем XML-файле установите силу тяжести textview в центр:

  

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

    

Для LinearLayout также код такой же:

    

и prog grammatically parent – это Java-код RelativeLayout, который во время выполнения использует что-то подобное в вашей деятельности

 TextView textView1 =(TextView)findViewById(R.id.texView1); RelativeLayout.LayoutParams layoutParams = RelativeLayout.LayoutParams)textView1.getLayoutParams(); layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE); textView1.setLayoutParams(layoutParams); 

Вы можете сделать это так, чтобы получить текст в центре

  

Мы можем добиться этого несколькими способами:

Метод XML 01

  

Метод XML 02

  

Метод XML 03

  

Метод XML 04

  

Метод Java 01

 textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 

Метод Java 02

 textview.setGravity(Gravity.CENTER); 

Метод Java 03

 textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER); 

android:gravity="center_horizontal" для выравнивания текста по горизонтали. android:gravity="center_vertical" для выравнивания текста по центру вертикально. android:gravity="center" для выравнивания текста Центр как по вертикали, так и по горизонтали.

  

Попробуйте этот путь, он будет работать

    

используйте приведенный ниже код в xml, он работал для меня, вы можете изменить ориентацию, которая будет находиться в центре

    

TextView gravity работает в соответствии с вашим родительским макетом.

LinearLayout :

Если вы используете LinearLayout, то вы найдете два атрибута гравитации android: gravity & android: layout_gravity

android: gravity: представить макет зелья внутреннего текста TextView, а android: layout_gravity: представить позицию TextView в родительском представлении.

введите описание изображения здесь

Если вы хотите установить текст по горизонтали и вертикали, используйте ниже код this

    

RelativeLayout :

Используя RelativeLayout, вы можете использовать свойство ниже в TextView

android: gravity = “center” для текстового центра в TextView.

android: gravity = “center_horizontal” внутренний текст, если вы хотите горизонтально центрировать.

android: gravity = “center_vertical” внутренний текст, если вы хотите вертикально центрировать.

android: layout_centerInParent = “true”, если вы хотите, чтобы TextView находился в центральном положении родительского представления. android: layout_centerHorizontal = “true”, если вы хотите TextView в горизонтальном центре родительского представления. android: layout_centerVertical = “true”, если вы хотите TextView в вертикальном центре родительского представления.

    
  • как переопределить кнопку панели действий в андроиде?
  • Как получить представление о содержании активности?
  • Как возобновить Android-активность программно из фона
  • Есть ли способ сделать эллипсис = «шатер» всегда прокручивать?
  • Как я могу сделать свои пользовательские объекты Parcelable?
  • Разработка Android Homescreen
  • Изменяйте программный цвет с возможностью рисования
  • Изменение контактной информации
  • Помощь с настраиваемыми атрибутами View в проекте библиотеки Android
  • Как ускорить время распаковки в Java / Android?
  • Android 4.2: поведение обратного стека с вложенными fragmentами
  • Давайте будем гением компьютера.