我目前正在尝试使用开关case语句来转换Android Studio中的一些颜色值,但我一直被标记为“开关标签不可达”。我尝试重新创建一个新的开关case语句,甚至重新启动Android Studio,但问题仍然存在。
我真的不知道该怎么办。我看不出有什么东西会让这些陈述无法实现。
下面是前面提到的代码:
public int getColorHex(int color)
{
int r = (Color.red(color) << 16) & 0x00FF0000;
int g = (Color.green(color) << 8) & 0x0000FF00;
int b = Color.blue(color) & 0x000000FF;
int colorValue = 0xFF000000 | r | g | b;
int hexValue;
switch (colorValue) {
case 0x000000:
hexValue = 0;
break;
case 0xFFFFFF:
hexValue = 1;
break;
case 0x00FF00:
hexValue = 2;
break;
case 0x0000FF:
hexValue = 3;
break;
case 0xFF0000:
hexValue = 4;
break;
case 0xFFFF00:
hexValue = 5;
break;
case 0xFF8000:
hexValue = 6;
break;
case 0xFFDCC8:
hexValue = 7;
break;
default:
hexValue = 8;
break;
}
return hexValue;
}
这也是Android Studio给我的警告消息的屏幕截图。
根据您的代码,色值的高字节始终为0xFF。
int colorValue = 0xFF000000 | r | g | b;
但是在您的开关情况下(“默认”除外),高字节为0。所以这些情况是不可能命中的。