Intereting Posts
Android M странные общие предпочтения Преобразование приложения Android из бесплатной / платной модели в платную разблокировку в приложении Как я могу сделать нижний колонтитул растяжки ListView для заполнения оставшегося пространства? Как определить, будут ли длинные координаты lat на дороге с API Карт Google v2 Как увеличить пространство между текстом и подчеркнуть в TextView Android? Как добавить границу к тексту в текстовом андроиде Отображение индикатора выполнения в диалоговом окне предупреждения Панель состояния перекрывает строку состояния Как проверить, отключен ли телефон, вибрировать или громко в андроиде Сборщик мусора в Android Анимация MaxLines и эллипсизация Как открывать контакты, когда я нажимаю кнопку, определенную в main.xml Получить координаты сенсорного события на Android Android прозрачный WebView поверх VideoView Почему маржа LinearLayout игнорируется при использовании в виде списка ListView

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>