【发布时间】:2017-06-11 20:01:57
【问题描述】:
在 Android 中,我想做这样的事情(但有 2 种交替的黑白颜色:
像这样用涟漪效果改变颜色
我尝试做的是:
1) 通过 XML 设置默认 backgroundTint 和波纹颜色
app:backgroundTint="@android:color/black"
app:rippleColor="@android:color/white"
2) onclick 方法中,将 backgroundTint 更改为白色,将波纹颜色更改为黑色
为初始颜色设置一个字符串,即high_color = "black"。那么,
fab.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onClick(View v) {
if(high_color.equals("black")){
fab.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(getApplicationContext(), R.color.white)));
fab.setImageTintList(ColorStateList.valueOf(ContextCompat.getColor(getApplicationContext(), R.color.black)));
fab.setRippleColor(ContextCompat.getColor(getApplicationContext(), R.color.black));
high_color = "white";
}else {
fab.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(getApplicationContext(), R.color.black)));
fab.setImageTintList(ColorStateList.valueOf(ContextCompat.getColor(getApplicationContext(), R.color.white)));
fab.setRippleColor(ContextCompat.getColor(getApplicationContext(), R.color.whites));
high_color = "black";
}
}
});
现在我得到了这样的东西:
我得到的是这个
有没有办法让这个看起来像第一个?比如放慢波纹动画速度之类的?
【问题讨论】:
-
在我看来,它不像是连锁反应。您是否为此尝试过 Circular Reveal?检查这个:guides.codepath.com/android/Circular-Reveal-Animation。还有这个:developer.android.com/training/material/animations.html
-
啊,如果你想要一个例子......检查我的回购,它完全符合你的要求,但是在 CustomView 上,在这个文件中:github.com/leandroBorgesFerreira/LoadingButtonAndroid/blob/…
-
尝试将波纹颜色更改为透明... Idk,它可能会工作
标签: android android-layout floating-action-button rippledrawable