java - 是否可以将 ofFloat 设置为多个目标?
问题描述
我有这个淡入淡出功能
private void fadeIn() {
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(ButtonA, "alpha", 0f, 1f);
objectAnimator.setDuration(2000L);
objectAnimator.addListener(new AnimatorListenerAdapter() {
});
objectAnimator.start();
}
现在唯一的目标是ButtonA,我还有3个按钮(ButtonB,ButtonC ....)无论如何我可以在不写这个代码片段4次的情况下定位所有四个?
解决方案
尝试这个
private static void fadeIn(long duration, final View... views) {
if (views == null) return;
final ValueAnimator va = ValueAnimator.ofFloat(0, 1);
va.setDuration(duration);
va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animator) {
final float alpha = (float) animator.getAnimatedValue();
for (View view : views) view.setAlpha(alpha);
}
});
va.start();
}
如何使用:
// first argument duration and then pass any number of views
fadeIn(2000, buttonA, buttonB, buttonC);
推荐阅读
- reactjs - 反应路由器重定向返回空白页面
- javascript - 如何在特定字符串过滤器上从对象中提取键值对?
- spring-boot - 在 Spring Native Query 项目中获取 Null 值
- spring-el - 如何使用 Spring 表达式语言将没有构造函数的对象添加到列表中
- laravel - "message": "试图获取非对象的属性 'secret'", "exception": "ErrorException",
- python - 测量 scikit-learn 的内存使用量会改变模型性能
- spring-boot - MapStruct 从映射器中排除很多字段
- sql - 从 oracle sql 查询输出中删除分区行
- r - 如何使用 R 将一组个体变成二元组?
- c - scanf() 在 for 循环中无法正常工作