2011-02-18 84 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>