5

我有一个TransitionDrawable。这两个状态都是九个补丁,并定义了一个内容区域。问题是利润太高了——事实上它基本上是应该的两倍。似乎是在将两个九个补丁的边距相加。

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

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

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

4

1 回答 1

3

是的,你是对的。确实很烦人。

正如您所建议的,到目前为止,我使用硬编码的负填充来补偿first_nine_patch9 补丁填充。

<?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>
于 2014-04-30T13:46:54.490 回答