我有各种各样的按钮,我想要获得它们的背景颜色,获取可绘制颜色的背景颜色很容易,但它不容易绘制波纹,我该如何管理从波纹可绘制的背景颜色。如何获得可绘制波纹按钮的颜色
回答
请检查下面的例子在Android的连锁反应..
http://www.viralandroid.com/2015/09/how-to-add-ripple-effect-to-android-button.html
试试这个:
RippleDrawable rippleDrawable = (RippleDrawable) button.getBackground();
Drawable.ConstantState state = rippleDrawable.getConstantState();
try {
Field colorField = state.getClass().getDeclaredField("mColor");
colorField.setAccessible(true);
ColorStateList colorStateList = (ColorStateList) colorField.get(state);
int rippleColor = colorStateList.getDefaultColor();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
对于默认的按钮背景颜色,它看起来接近#ffd6d7d7,代码返回#1f000000。我怎样才能选择正确的状态,即点击按钮之前的状态? thx – rockhammer
@rockhammer你可以尝试'ColorStateList.getColorForState' – shhp
thx的建议...花了我一段时间来弄清楚如何工作'.getState()'&'.getColorForState()'。在'try'之前插入'int [] statesOther = rippleDrawable.getState();'在'try'之前插入一个for循环来执行'coloursOther [i] = colorStateList.getColorForState(new int [] {statesOther [i]},0 );',整个'coloursOther []'数组和'rippleColor'返回#1f000000。然后我想可能是因为我在'onClick()'中有这个代码,所以它只会显示与点击相关的状态。即使当我把这个代码放在'onCreate()'或'onWindowFocusChanged()',我只得到#1f000000 – rockhammer
- 1. 如何更改可绘制波纹的纯色?
- 2. 如何动态改变可绘制颜色按钮
- 3. 更改按钮带纹波的背景颜色
- 4. 2可绘制按钮水平无间隔2按钮和onclick改变可绘制按钮颜色
- 5. 如何更改标准按钮上的选择器/波纹颜色?
- 6. 改变波纹效果的颜色
- 7. Android TV中ImageCardView上的波纹颜色
- 8. Android按钮可绘制色调
- 9. 如何获得背景颜色的按钮
- 10. 如何获取指针颜色按钮
- 11. 如何更改条纹弹出式工作按钮的颜色?
- 12. 如何缩放按钮内部的可绘制按钮,使按钮大小不受可绘制的控制?
- 13. 如何更改最大化按钮颜色/纹理
- 14. 如何设置material-ui ListItem的纹波颜色?
- 15. 如何添加按钮可绘制彩色programatticaly
- 16. 颜色绘制不同的颜色matplotlib
- 17. 如何绘制不同颜色的点?
- 18. 如何绘制不同的颜色
- 19. 设置TextView的颜色可绘制
- 20. 在XNA/Monogame中使用颜色属性着色绘制纹理,如何平衡?
- 21. 如何更改按钮点击矢量绘制路径的颜色
- 22. Android开关按钮错误:资源不是可绘制的(颜色或路径)
- 23. 如何获得matlab中示波器波形的实时绘图?
- 24. 如何在iOS中绘制纹理按钮?
- 25. 动态获取可绘制的主要颜色来设置工具栏颜色
- 26. 如何获得最新的大熊猫df.plot()绘制线条的颜色
- 27. 如何绘制关注通带纹波的幅度响应
- 28. 创建没有透明度的可绘制波纹
- 29. 在列表中绘制的背景颜色中的条纹包
- 30. 如何在按下JButton后更改绘制项目的颜色?
我不想波纹动画,我希望得到他们的背景颜色 – Mike