我有一个名为ColoredCircle
的自定义视图。它得到了attr
名为" circlecolor"。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="ColoredCircle">
<attr name="circlecolor" format="color" />
</declare-styleable>
</resources>
根据Google Creating a View Class,我的二传手应该是这样的:
public void setCircleColor(int color){
this.color = color;
invalidate();
requestLayout();
}
如果我直接调用它,这个setter会按预期工作,但我想用ObjectAnimator
调用setter。根据谷歌Property Animation,它应该适用于我的二传手。
&#34;您要设置动画的对象属性必须具有set<PropertyName>()
形式的setter函数(在camel情况下)。因为ObjectAnimator
在动画期间自动更新属性,所以它必须能够使用此setter方法访问该属性。例如,如果属性名称为foo,则需要使用setFoo()方法。&#34;
但是这个电话完全被忽略了:
ObjectAnimator colorFade = ObjectAnimator.ofObject(coloredCircle,
"circlecolor", new ArgbEvaluator(), coloredCircle.getColor(), newColor);
colorFade.setDuration(300);
colorFade.start();
感谢您的时间