常见的代码中解析颜色的方法是:Color.parseColor,但因为可能出现的参数问题,导致该方法十分脆弱易崩。
使用该类实现对颜色的赋值可以有效避免:崩溃、缺失#号等问题。
用法:ColorTools.getColor("#ffffff")
public class ColorTools {
private ColorTools() {
}
/**
* 解析颜色
* @param colorStr
* @return
*/
public static int getColor(String colorStr) {
int color = Color.WHITE;
try {
if(colorStr != null && !colorStr.startsWith("#")){
colorStr = "#" + colorStr;
}
color = Color.parseColor(colorStr);
}catch (Exception e) {
e.printStackTrace();
}
return color;
}
/**
* 解析颜色
* @param colorStr
* @param defaultColor
* @return
*/
public static int getColor(String colorStr, String defaultColor) {
int color = Color.WHITE;
try {
if (TextUtils.isEmpty(colorStr) && !TextUtils.isEmpty(defaultColor)) {
color = Color.parseColor(defaultColor);
}else {
if(colorStr != null && !colorStr.startsWith("#")){
colorStr = "#" + colorStr;
}
color = Color.parseColor(colorStr);
}
}catch (Exception e) {
e.printStackTrace();
}
return color;
}
}