#java #android #textview #imageview
#java #Android #textview #imageview
Вопрос:
Я пытаюсь работать с функцией автоматического определения размера TextView по умолчанию, но это не работает. Я хочу, чтобы тексты моих TextViews уменьшались в размере, если они переходят на следующую строку, и, несмотря на настройку android:autoSizeStepGranularity="15dp"
, я почти не вижу разницы. 2 TextViews находятся поверх ImageView
Это мой XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".TopImageFragment">
<ImageView
android:id="@ id/meme_image_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/click"
android:scaleType="fitXY"
android:tag="img1"
/>
<TextView
android:id="@ id/top_text_view"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_alignTop="@id/meme_image_view"
android:layout_centerHorizontal="true"
android:autoSizeTextType="uniform"
android:autoSizeStepGranularity="15dp"
android:shadowColor="#000"
android:shadowDx="2"
android:shadowDy="2"
android:shadowRadius="2"
android:textAllCaps="true"
android:textColor="@android:color/white"
android:textAlignment="center"
android:fontFamily="@font/impact"
android:gravity="center"
android:textSize="50sp" />
<TextView
android:id="@ id/bottom_text_view"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/meme_image_view"
android:layout_centerHorizontal="true"
android:autoSizeTextType="uniform"
android:autoSizeStepGranularity="15dp"
android:shadowColor="#000"
android:shadowDx="1.5"
android:shadowDy="1.3"
android:shadowRadius="1.6"
android:textAllCaps="true"
android:textColor="@android:color/white"
android:textAlignment="center"
android:fontFamily="@font/impact"
android:gravity="center"
android:textSize="50sp" />
</RelativeLayout>
И вот пример того, о чем я говорю:
Комментарии:
1. Вы устанавливаете высоту на
wrap_content
. Высота представления не ограничена, поэтому она просто увеличивается. Если вы установите для него точное значение, размер текста изменится.2. @EugenPechanec, лол, какая глупая ошибка. Большое вам спасибо. Если вы опубликуете это как полный ответ, я приму и поддержу его.
Ответ №1:
Для ваших текстовых представлений установлена высота wrap_content
. Они будут автоматически увеличиваться, чтобы вместить весь текст, прежде чем изменять размер текста.
Выберите один из них в зависимости от вашего варианта использования (с вашими собственными значениями, конечно):
android:layout_height="100dp"
или
android:layout_height="wrap_content"
android:maxHeight="100dp"
Комментарии:
1. Поддержано и принято! Если вы считаете, что это был хорошо заданный вопрос, не могли бы вы также дать мне положительный отзыв?
2. Я бы не «просил» о повышении голосов, если бы повышение голосов не использовалось как способ для высокопоставленных пользователей задавить вопросы, потому что это не шло рука об руку с их субъективным пониманием того, что такое хороший вопрос, в отличие от того, что Stackoverflow описывает как хороший вопрос. Я задаю свои вопросы в руководстве SO на другой вкладке, и все же у меня есть люди, которые закрывают их, потому что они получили привилегии. Кстати. Я попросил повысить голос, если вы считаете, что это был хорошо заданный вопрос. Итак, в конце концов, вы проголосовали за него, основываясь на ваших собственных заслугах.