9

我有一个列表视图结构,其相对布局使用交替的背景图像作为奇数/偶数元素。我正在尝试通过计算位置来动态设置可绘制的背景。它适用于普通位图。但是当我尝试使用 Ninepatch 图像时,它破坏了 UI,所有元素都被扭曲了。我究竟做错了什么?可能是如何创建 Ninepatch 图像,或者与普通位图相比是否有不同的方式使用 Ninepatch 图像。

我的列表视图 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>

可能是这里的解决方案可能适用于我的问题。虽然我必须尝试一下,但它是准确的。

4

4 回答 4

33

由于一年来没有人回答您...我遇到了同样的问题,您需要将填充设置为零(即使您不需要它)。

祝你好运。

于 2012-07-31T06:23:02.680 回答
0

您可以像使用普通可绘制对象一样使用九个补丁。我假设您对 9 补丁本身有问题。在你的 android sdk 的 /tools 目录中,你有 draw 9 补丁工具。它将帮助您更正您的 9 个补丁可绘制对象并针对不同大小的视图进行预览。

于 2011-02-18T11:49:27.827 回答
0

选择除角以外的所有边作为拉伸边

于 2013-07-26T10:06:50.510 回答
0

您可以使用此 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>

于 2017-09-07T06:28:41.187 回答