Intereting Posts
Зависимость библиотеки Android от Gradle от зависимости библиотеки от Nexus Как получить пользователя Home / Work location для пользователя в Android Не удалось разрешить хост «<url here>»; Нет адреса, связанного с именем хоста Как получить текущую ориентацию экрана? Драйверы «мягкого режима» для Android-хоста Android USB для стандартных USB-устройств, совместимых со стандартами Передача списка в виде varargs Какая конфигурация ProGuard мне нужна для Firebase на Android? Автозаполнение поиска на одном персонаже Проблема кодирования строк в Webview Круговые зависимости не могут существовать в RelativeLayout, Android? Профайл proguard.cfg отсутствует Значок уведомлений Android 5.1 пуст Android простой элемент spinner Отсутствующие стили. Правильная ли тема выбрана для этого макета? Как вы включаете имя пользователя при хранении электронной почты и пароля с помощью Firebase (BaaS) в приложении для Android?

Android рисует текст в прямоугольник по центру и обрезает его, если необходимо

Я хочу нарисовать текст в прямоугольник по центру (по горизонтали и по вертикали). Если есть слишком много текста, который обрезает его, что не вписывается в прямоугольник.

Я пытаюсь сделать это, как показано на этом примере , но без везения.

Есть идеи?

Solutions Collecting From Web of "Android рисует текст в прямоугольник по центру и обрезает его, если необходимо"

Попробуй это

private void drawRectText(String text, Canvas canvas, Rect r) { textPaint.setTextSize(20); textPaint.setTextAlign(Align.CENTER); int width = r.width(); int numOfChars = textPaint.breakText(text,true,width,null); int start = (text.length()-numOfChars)/2; canvas.drawText(text,start,start+numOfChars,r.exactCenterX(),r.exactCenterY(),textPaint); } 

Эта функция работала для меня.

 private void drawDigit(Canvas canvas, int textSize, float cX, float cY, int color, String text) { Paint tempTextPaint = new Paint(); tempTextPaint.setAntiAlias(true); tempTextPaint.setStyle(Paint.Style.FILL); tempTextPaint.setColor(color); tempTextPaint.setTextSize(textSize); float textWidth = tempTextPaint.measureText(text); //if cX and cY are the origin coordinates of the your rectangle //cX-(textWidth/2) = The x-coordinate of the origin of the text being drawn //cY+(textSize/2) = The y-coordinate of the origin of the text being drawn canvas.drawText(text, cX-(textWidth/2), cY+(textSize/2), tempTextPaint); } 

Как насчет этого?

  <FrameLayout android:id="@+id/frameLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/textView1" android:layout_height="40dp" android:layout_width="100dp" android:layout_gravity="center" android:text="TextViewqqqqqqqqqqqwwww" android:inputType="text"> </TextView> </FrameLayout>