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