2011-02-18 51 views
9

我有一个列表视图结构,相对布局使用 交替的背景图像作为奇数/偶数元素。我试图通过计算位置来动态设置 背景。它 正常位图工作正常。但是,当我尝试使用九宫格图像时,它打破了用户界面,所有的元素都变形了。我做错了什么 ?难道这是如何创建ninepatch图像或是 有一个不同的方式来使用ninepatch图像与正常的 位图相比。以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> 

可能是解决here可能适用于我的问题。这是确切的,但我必须尝试。

+0

可能是你不好,格式化9补丁? – 2011-02-18 11:41:52

+0

我已经尝试了9个补丁映像的不同变体,所有这些变体都会给出我想要的预览。但是,当特定的列表视图活动启动时,我的第一个RelativeLayout内的内容不见了。尽管如此,普通的位图图像工作得很好。 – 2011-02-18 14:49:16

+0

正在发生的事情的屏幕截图,您想要发生的事情以及9修补程序的图像可能会帮助人们确定问题所在。 – ChrisJD 2011-12-12 21:45:45

回答

0

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

32

既然没有人回答你一年了...... 我有同样的问题,你需要setpadding零(即使你不需要它)。

祝你好运。

0

选择除角落的拉伸边缘

0

您可以使用此XML作为背景显示为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>