我的应用程序正在从图库中调用图像,当您单击图像的某个位置时,它会发出颜色。我面临一个问题;我正在使用这些代码来获取图像上每个位置的颜色值。有趣的是,它正确检测颜色值(即对于红色,它显示 r=255,g=0,b=0)但是当谈到颜色名称时(我使用 'TextToSpeech' 来表示颜色名称),它主要说“颜色是黑色(除非你点击白色,它说颜色是白色。这是我的代码:
if ((Color.red(pixel) & Color.blue(pixel) & Color.green(pixel))> 220) {
if(TTSInitialized){
mTts.speak("Color is White", TextToSpeech.QUEUE_FLUSH, null);
}
textViewCol.setText("Color is White.");
return true;}
if ((Color.red(pixel) & Color.blue(pixel) & Color.green(pixel)) < 10) {
if(TTSInitialized){
mTts.speak("Color is Black", TextToSpeech.QUEUE_FLUSH, null);
}
textViewCol.setText("Color is Black.");
return true;}
if ((Color.red(pixel) & Color.blue(pixel)) > 120) {
if(TTSInitialized){
mTts.speak("Color is Purple", TextToSpeech.QUEUE_FLUSH, null);
}
textViewCol.setText("Color is Purple.");
return true;}
if (Color.red(pixel) > (Color.blue(pixel) & Color.green(pixel))) {
if(TTSInitialized){
mTts.speak("Color is RED", TextToSpeech.QUEUE_FLUSH, null);
}
textViewCol.setText("Color is Red.");
return true;}
我的应用程序有红色、绿色、蓝色、黄色、紫色、青色、黑色和白色。现在的问题是:我编写代码的方式是否正确?如果没有,你有什么建议?为什么它总是说黑色,无论你点击红色、蓝色或任何其他颜色?!