2013-11-19 6 views
2

У меня есть текстовое представление, которое должно использовать 9-патч, который можно использовать в качестве фона. Но у 9-патч-drawable есть левый и правый paddings, которые делают фоновое изображение не растягивается должным образом, чтобы покрыть весь текст. Я попытался сбросить прокладки для самого текстового поля, но это не устраняет проблему.Как удалить paddings в фон с 9 патчами для textview

У кого-нибудь есть идея, как заставить его работать?

Спасибо.

ответ

6

черные линии на левом и верхнем определяет растяжение является, и те, на праве и нижней отмечает «содержание» площадь в 9-патче изображении.

Итак, если вы не хотите, чтобы набивка означала, что вам нужна полноразмерная область содержимого. Вы должны отметить область содержимого полной ширины, рисуя полноразмерную строку внизу и справа от изображения 9patch.

enter image description here

В этом изображении, черные линии на правой и нижней части представляют собой область содержимого. Вы можете просмотреть предварительный просмотр с правой стороны и заметить область содержимого в голубом цвете. Вы можете заполнить область содержимого, расширив нижнюю и правую линии.

+0

Спасибо! Но есть ли способ избавиться от прокладки без изменения самого изображения? –

+0

AFAIK, мы не можем изменить дополнение в 9patch программно! Мы должны работать над изображением, чтобы удалить его! –

+0

На самом деле мне нужно убедиться, что текст полностью покрыт фоном. Благодаря! –

0

Редактирование файла с 9 патчами - не очень хорошая идея, потому что этот метод может деформировать фоновое изображение. я использовал трюк, чтобы справиться с этим:

<RelativeLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 
      <View 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignBottom="@+id/textView" 
       android:layout_alignTop="@+id/textView" 
       android:background="@drawable/your_9_patch_image"/> 
      <TextView 
       android:id="@+id/textView" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:text="a custom text!"/> 
</RelativeLayout> 

Я поставил 9-патч фон вытяжку для View за мою TextView в RelativeLayout. Таким образом, нет нежелательной прокладки :)

0

Теоретически вы не можете навсегда изменить дополнение 9 патч-изображений.

Так у вас есть два варианта:

1) Есть несколько 9 изображений патча в вашей вытяжке папки для каждого разрешения: рисую-ИПЧР, рисует-xhdpi и т.д.

2) Код для вставки внутренней компоновки:

<RelativeLayout 
     android:background="@drawable/nine_patch_image_without_padding" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <LinearLayout 
     android:layout_margin="10dp" // Your padding goes here 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <TextView 
      android:text="How you doing" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 
     </LinearLayout> 
    </RelativeLayout> 

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

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

  • Нет связанных вопросов^_^