Android TransitionDrawable在TextView中作为背景不按预期工作

Android TransitionDrawable在TextView中作为背景不按预期工作,android,android-layout,android-xml,Android,Android Layout,Android Xml,下面的问题:我正试图使文本视图通过资源在两个背景之间淡入淡出。我的转换xml文件如下所示: <?xml version="1.0" encoding="utf-8"?> <transition xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/gray_bar" /> <item android:dr

下面的问题:我正试图使文本视图通过资源在两个背景之间淡入淡出。我的转换xml文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/gray_bar" />
    <item android:drawable="@drawable/green_bar" />
</transition>
结果是textview从以下内容进行转换:

为此:

当整个灰色条应转换为绿色条时

两者都是9-patch png图像。这些是原件:

我的猜测是,绿色条填充了灰色条中文本的可用空间,但我不知道为什么。有什么线索吗?灰色的图像看起来也比它应该的大得多,但在过渡之前、过渡期间或过渡之后都不会改变大小,尽管包含了图像的外观。这可能是9-patch图像的一个问题,因为我已经测试了正常图像,过渡效果很好


谢谢你的帮助

我能够重现您看到的问题,绿色条没有占据灰色条的全部空间。若要修复它,请使用灰色条9-patch并将底部和右侧的线条延伸到距离角一个像素的位置

另一方面,9-patches的另一个潜在问题是,随着内容高度的增加,图像在垂直拉伸时会出现视觉瑕疵。这是图像左侧黑条高度的结果,它决定了9面片的哪个部分应该拉伸。对这9个面片的进一步改进是将左侧的黑线减少到仅位于左侧边缘中心的一个像素。由于只有一个像素被标记为可拉伸,如果可拉伸高度增加,这将为您提供一个清晰的垂直边缘


如果您包括布局代码,我可能会帮助您解决其他尺寸问题。

我也有同样的问题。。。你有没有设法用任何方式解决这个问题?嗯,在谷歌的例子中,他们使用setImageDrawable。可能挫折背景不是预期的行为,如果没有,那么你可以将imageview作为“背景”(使用相对布局将其放在textview下),然后在其上运行转换,可能?不,这也不起作用。我已经切换到彩色而不是图像。我建议这是一个9补丁问题,因为我用普通图像测试了相同的代码,并按预期工作。所以,zwebie,它使用的是彩色图像而不是9块图像,在我的例子中,它使用的是普通(非9块)图像。
TextView answerBox = (TextView) findViewById(R.id.answerBox);
answerBox.setBackgroundResource(R.drawable.correct_transition);
TransitionDrawable transition = (TransitionDrawable) answerBox.getBackground();
transition.startTransition(1500);