13

我想在 LayerDrawable 中使用两个九个补丁

   <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
       <item android:id="@+id/solid">
           <nine-patch android:src="@drawable/button_header_solid" android:dither="true" />
       </item>
       <item android:id="@+id/transparent">
           <nine-patch android:src="@drawable/button_header_transparent" android:dither="true" />
       </item>
   </layer-list>

而且似乎只有第一层被拉伸,而第二层保持原样。

两个图像的大小都与 .png 相同,并且具有相同的可拉伸区域和填充区域。

问题是:我们是允许使用几个 9 补丁(在一个层列表中)还是只允许使用一个?

谢谢。

4

2 回答 2

3

刚刚面临同样的问题。尝试这个:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
       <item android:id="@+id/solid">
           <nine-patch android:src="@drawable/button_header_solid" android:dither="true" />
       </item>
       <item android:id="@+id/transparent">
           <clip>
              <nine-patch android:src="@drawable/button_header_transparent" android:dither="true" />
           </clip>
       </item>
   </layer-list>
于 2011-10-29T14:44:39.847 回答
2

以下使两个 9 补丁的行为都符合您的预期(在 Android 2.2 上测试)。两个 9-patch 都被扩展以填充整个可绘制区域。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/solid" 
        android:drawable="@drawable/button_header_solid"/>
    <item android:id="@+id/transparent" 
        android:drawable="@drawable/button_header_transparent"/>
</layer-list>
于 2012-04-24T23:42:15.513 回答