2012-06-18 2 views
1

Возможные Дублировать:
Why does the background of TextView change it's size?TextView с переменной шириной и фоном

У меня есть TextView, где я положил текст динамически и имеет фона (пользовательские растровый, а не простой цвет или градиент). Я хочу, чтобы TextView (и фон, конечно) обернулся вокруг содержащегося текста (wrap_content). Как мне это сделать?

См. Также Why does the background of TextView change it's size?.

Единственное, что я нашел, это сделать растровое изображение фона очень маленьким, затем оно растянется и обернется. Но это будет не хорошее качество ...

ответ

1

Если поместить фоновое изображение фиксированного размера, то ваш взгляд будет принимать его размера, так что вам нужно использовать фон, который не имеет размера, так что он может взять размер текста. Для этого вы можете сделать следующие 2 вещи:

1. Получите изображение 1 пикселя.

2. рисовать градиент изображения:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 

    <gradient 
     android:angle="270" 
     android:endColor="#FFFFFF" 
     android:startColor="#FFFFFF" 
     android:type="linear" > 
    </gradient> 

    <corners android:radius="10dp" /> 

    <stroke 
     android:width="2dp" 
     android:color="#AAAAAA" /> 

</shape> 

Примечание: Для подробного описания следует link.

EDITED:

3. Если изображение не ясно, или градиент, то вам необходимо установить ширину TextView программно каждый раз, когда вы установите текст.

+0

Но что, если у меня есть изображение, отличное от простого цвета или градиента ... – Ixx

+0

Или, может быть, изображение с 9 патчами, будет ли это работать в этом случае? – Ixx

+0

См. Отредактированный ответ. –

0

Попробуйте этот способ ..

  EditText saveas = new EditText(context); 
    saveas.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
      LayoutParams.WRAP_CONTENT)); 

Я думаю, что это поможет вам.

Благодаря

Смежные вопросы