【问题标题】:Is it possible to use several 9 patch images inside LayerDrawable?是否可以在 LayerDrawable 中使用几个 9 个补丁图像?
【发布时间】:2011-05-21 09:34:23
【问题描述】:

我想在 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-patches(在一个 layer-list 中)还是只允许一个?

谢谢。

【问题讨论】:

    标签: android nine-patch


    【解决方案1】:

    刚刚遇到同样的问题。 试试这个:

    <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>
    

    【讨论】:

    • @karthi B,编辑并不意味着将 cmets 添加到帖子中。此外,StackOverflow 并不是为了做你的工作。如果您有问题,请提出具体问题并阅读常见问题解答。
    【解决方案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>
    

    【讨论】:

    • 我发现这个解决方案有效,但有一些细微差别:(1)两个层都必须是原始大小; (2) 第一层的内容区域必须设置为整张图片
    猜你喜欢
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    • 2016-07-27
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    相关资源
    最近更新 更多