I have a list view structure, with Relative layout that uses alternating background images for odd/even elements. I'm trying to set the background drawable dynamically by calculating the position. It worked fine with the normal bitmap. But when I tried to use the ninepatch image it breaks the UI, all the elements get distorted. What am I doing wrong? Could it be how the ninepatch image is created or is there a different way to use a ninepatch image compared to a normal bitmap.
My List View XML goes like this
<?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>
May be the solution here might work for my problem. It's exact though I have to try it.
Since nobody answered you for a year now... I had the same issue you need to setpadding of zero (even if you don't need it).
Good luck.
You can use nine patch in the same way you use a normal drawable. I assume you have a problem with the 9 patch itself. In the /tools directory of your android sdk you have the draw 9 patch tool. It will help you to correct your 9 patch drawable and to preview it for different sizes of your view.
select all sides except corners as the stretching edges
you can use this xml as background to show as cardview.
<?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>
来源:https://stackoverflow.com/questions/5040720/problem-with-9-patch-image-as-background