我正在尝试用ContextCompat.GetColor替换Resources.GetColor,但最后一个没有返回颜色,我不知道应该使用什么而不是Resources.GetColor(从API 23中弃用).任何人都可以帮助我(见下面我想要实现的目标)?
Button.SetBackgroundColor(ContextCompat.GetColor(this,Resource.Color.LightRed));
请注意,我使用的是Xamarin,但如果你在java中有答案,我可以很容易地适应它.
谢谢!
解决方法
ContextCompat只返回颜色的整数表示.您需要通过拆分其RGB部分将其转换为Android颜色.使用这样的东西
using Android.Graphics; public static Color GetColorFromInteger(int color) { return Color.Rgb(Color.GetRedComponent(color),Color.GetGreenComponent(color),Color.GetBlueComponent(color)); }
并在你的方法
btn.SetBackgroundColor(GetColorFromInteger(ContextCompat.GetColor(this,Resource.Color.LightRed);