【发布时间】:2012-05-28 04:10:57
【问题描述】:
以下问题:Animate change of view background color on Android 我正在尝试通过TransitionDrawable 资源使 TextView 在两个背景之间淡出。我的过渡 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 answerBox = (TextView) findViewById(R.id.answerBox);
answerBox.setBackgroundResource(R.drawable.correct_transition);
TransitionDrawable transition = (TransitionDrawable) answerBox.getBackground();
transition.startTransition(1500);
结果是 textview 从这个转换而来的:
对此:
当整个灰色条应该变成绿色时。
两者都是 9-patch png 图像。这些是原件:
我的猜测是绿色条填充了灰色条内可用于文本的空间,但我不知道为什么。有什么线索吗?灰色的看起来也比它应该的大得多,但在转换之前、期间或之后不会改变大小,尽管包含的图像出现了。这可能是 9-patch 图像的问题,因为我已经测试了普通图像并且过渡效果很好。
感谢您的帮助!
【问题讨论】:
-
我也有同样的问题...你有没有设法解决这个问题?
-
hmmm,在谷歌的示例中,他们使用 setImageDrawable 可能 setbackground 不是预期的行为,如果不是,那么您可以将 imageview 作为“背景”(使用相对布局将其放在 textview 下)和就这样运行过渡吧?
-
不,这也不起作用。我已经切换到颜色而不是图像。我建议这是一个 9 补丁问题,因为我用普通图像测试了相同的代码并按预期工作。所以,zwebie,它使用彩色而不是 9-patch 图像,就我而言,它适用于普通(非 9-patch)图像。
标签: android android-layout android-xml