android – ContextCompat.GetColor没有返回Color

前端之家收集整理的这篇文章主要介绍了android – ContextCompat.GetColor没有返回Color前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试用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);

猜你在找的Android相关文章