Я хочу нарисовать текст в прямоугольник по центру (по горизонтали и по вертикали). Если слишком много текста, которые обрезают его, что не вписывается в прямоугольник.
Я пытаюсь сделать это как этот пример показывает, но без везения.
Любые идеи?
Я хочу нарисовать текст в прямоугольник по центру (по горизонтали и по вертикали). Если слишком много текста, которые обрезают его, что не вписывается в прямоугольник.
Я пытаюсь сделать это как этот пример показывает, но без везения.
Любые идеи?
Попробуйте это
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>