Intereting Posts
Обработка перехода нескольких геообъектов с общей областью Android: загружать изображение и JSON с помощью MultiPartEntityBuilder Размер холста Как управлять использованием памяти при вызове нескольких WebView в Android? Как сделать линейное заполнение оставшегося пространства в режиме релятивирования? Android-потоки и блокировка базы данных JQuery Mobile / Phonegap на андроиде – весь текст отображается в шапках Начать работу с Button Android Я обновил Android от targetSdk 22 до 23, и я получаю NoSuchMethodError. Как я могу это исправить? «Недостаточно места для хранения», даже в памяти устройства много свободного места Обработка ошибок Asynctask Как обращаться с FirebaseInstanceId.getInstance (). GetToken () = null Как заполнить столбец «Приложение» в LogCat (Android-14 +) FFMPEG для инструментальных цепей Android: arm-linux-armeabi-eabi-pkg-config – существует ли какая-либо инструментальная цепочка, содержащая инструмент pkg-config Поддержка ActionBar не отображает правильный цвет с API 21

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>