5

我有一个TransitionDrawable。这两个州都是九个补丁,并且有一个内容区域已定义。问题在于保证金太高 - 实际上它基本上是应有的两倍。看起来它增加了九个补丁的利润率。TransitionDrawable与九个补丁 - 保证金是错的

如果我将其中一个直接作为背景设置为背景并且不使用TransitionDrawable,则该边距可以工作,因此九个补丁绝对正确。

有没有人遇到过这样的问题?

编辑:如果我将内容区域设置为资产的完整大小,并在xml中定义填充它的作品。否则它总是会导致保证金错误。这似乎是Android中的一个bug,所以这似乎是唯一的解决方案,但也许有更好的方法来解决这个问题:/

+0

你可以发布你的9个补丁和他们在xml布局?这是很难调试,而无法看到你的代码。我之前遇到过这种情况,我的'StateListDrawable'没有适当的边距,并且我意识到内容/可伸缩区域与我的图像不匹配,并且Android采用了共同的分母。 – 2013-02-15 20:28:14

+1

它似乎是在框架中的一个错误:http://code.google.com/p/android/issues/detail?id=48412 它的工作原理是如果我覆盖在xml中的填充,但它不是真正的我想做 – 2013-02-15 20:53:00

+0

出于好奇,如果你在你的'TransitionDrawable'的过渡中的两个项目使用相同的drawable会发生什么?这将是一个有保证的方式知道你正在使用相同大小的内容/可拉伸区域相同大小的9个补丁,并且Android正在做一些错误的事情...... – 2013-02-15 21:00:12

回答

3

是的,你说得对。令人讨厌的确。正如你所建议的那样,我使用硬编码负填充来弥补first_nine_patch的9补丁填充。

<?xml version="1.0" encoding="UTF-8"?> 
<transition xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/first_nine_patch" /> 
    <item android:drawable="@drawable/second_nine_patch" 
     android:top="-7dp" 
     android:right="-16dp" 
     android:bottom="-8dp" 
     android:left="-4dp" > 
    </item> 
</transition> 
+0

非常感谢分享此解决方法!一旦他们在Android中解决了这个问题,我们将不得不再次改变它。令人讨厌,确实.. – netzpurist 2014-08-28 18:47:54