Проблема с изображением 9 патчей в качестве фона

У меня есть структура представления списка с относительным макетом, в котором используются чередующиеся фоновые изображения для нечетных/четных элементов. Я пытаюсь установить динамический фон, вычисляя положение. Он отлично работал с обычным растровым изображением. Но когда я попытался использовать изображение с девятью патчами, он сломал пользовательский интерфейс, все элементы исказились. Что я делаю не так? Может быть, это то, как создается изображение с девятью патчами, или есть другой способ использования изображения с девятью патчами по сравнению с обычным растровым изображением.

Мой XML-представление списка выглядит следующим образом

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content" android:id="@+id/id01"
       android:background="@drawable/my_9patch_bg_image">
       <ImageView  />
       <RelativeLayout>
         <ImageView  />
          <TextView  />
          <TextView  />
       </RelativeLayout>
</RelativeLayout>

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


person Sharief Shaik    schedule 18.02.2011    source источник
comment
Может у вас плохо отформатированный 9-патч?   -  person Dmitry Ryadnenko    schedule 18.02.2011
comment
Я пробовал разные варианты изображения с 9 патчами, каждый из которых дает желаемый предварительный просмотр. Но содержимое моего первого RelativeLayout исчезает, когда эта конкретная активность просмотра списка активна. Хотя нормально работал с обычным растровым изображением.   -  person Sharief Shaik    schedule 18.02.2011
comment
Скриншот того, что происходит, изображение того, что вы хотите, и патч 9 могут помочь людям определить, в чем проблема.   -  person ChrisJD    schedule 13.12.2011
comment
здесь stackoverflow. com/questions/3904852/ та же проблема с примером кода :)   -  person Pauli    schedule 13.03.2015


Ответы (4)


Поскольку никто не ответил вам уже год ... У меня была такая же проблема, вам нужно установить нулевой отступ (даже если вам это не нужно).

Удачи.

person zwebie    schedule 31.07.2012
comment
У меня не сработало, патч 9 все равно показывает растянутым. - person Justin; 26.01.2016

Вы можете использовать девять патчей так же, как вы используете обычный рисунок. Я предполагаю, что у вас проблема с самим патчем 9. В каталоге /tools вашего Android SDK у вас есть инструмент исправления draw 9. Это поможет вам исправить ваши 9 патчей и просмотреть их для разных размеров вашего представления.

person Daniel    schedule 18.02.2011
comment
Я попытался исправить изображение с помощью инструмента draw9patch. Пробовал разные варианты, но не получилось. Каким должен быть идеальный способ рисования, если изображение должно масштабироваться в направлении (+x,-y)? - person Sharief Shaik; 18.02.2011

выберите все стороны, кроме углов, в качестве растягивающихся краев

person Raju yourPepe    schedule 26.07.2013

вы можете использовать этот xml в качестве фона для отображения в виде карты.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:dither="true" android:shape="rectangle">
        <corners android:radius="2dp" />
        <solid android:color="#e2e2e2" />
    </shape>
</item>
<item android:bottom="2dp">
    <shape android:dither="true" android:shape="rectangle">
        <corners android:radius="2dp" />
        <solid android:color="@color/white" />
    </shape>
</item>

person Hardik Vasani    schedule 07.09.2017