TextView текст сжимается до заданной ширины - PullRequest
3 голосов
/ 01 марта 2011

В моей деятельности есть поле для просмотра текста.Его размер шрифта составляет 16. Его текст задается с помощью кода.Предположим, что если у меня большой текст, он должен сжать эти данные (то есть уменьшить размер шрифта) вместо перехода на следующую строку.Как я могу это сделать?

<TextView android:id="@+id/textView" android:layout_width="400dp" android:layout_height="wrap_content" android:text="" android:textSize="16sp" />

Ответы [ 3 ]

9 голосов
/ 01 марта 2011

Я получил его, используя следующий метод, который я создал в соответствии с моим требованием.

private void autoScaleTextViewTextToHeight(TextView tv)
    {
        String s = tv.getText().toString();
        float currentWidth = tv.getPaint().measureText(s);

        float phoneDensity = this.getResources().getDisplayMetrics().density;

        while(currentWidth > (REQUIRED_WIDTH * phoneDensity)) {         
            tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, tv.getTextSize() - 1.0f); 
            currentWidth = tv.getPaint().measureText(s);
        }
    }
1 голос
/ 04 мая 2011

Следующий метод принимает TextView в качестве параметра и корректирует размер шрифта в соответствии с шириной данного TextView

private void adjustTextSize(TextView tv) {

    float size = tv.getPaint().getTextSize();
    TextPaint textPaint = tv.getPaint();
    float stringWidth = textPaint.measureText(tv.getText().toString());
    int textViewWidth = tv.getWidth();
    if(textViewWidth > stringWidth) {

        float percent = (textViewWidth / stringWidth);
        textPaint.setTextSize(size*percent);
    }
}

Надеюсь, это поможет.

0 голосов
/ 01 марта 2011

хорошего пути нет. вы можете рассчитать размер текста, который вы собираетесь разместить в этом TextView, и заново отрегулировать размер шрифта, пока он не уместится в целевой области. Для расчета размера используйте Paint.getTextBounds ().

Я сделал очень похожий рисунок для рисования на холсте. запрашивает цикл, который уменьшает размер шрифта до тех пор, пока рассчитанный размер не станет подходящим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...