这一课里,主要讲如何实现最后一个DISCO闪LED的功能,简单的讲是随机取值,然后再LED变化。其实会了第四课的内容,这一课应该可以自己做出来了。我做这个功能的时候没有仔细看LED的API,没有看到setColorPattern(int[] pattern, boolean repeat),而仍然用了setColorConfiguration(int onTime, int offTime, int color)的方法,当然需要借用一个计时器Timer.
    class TimerMainEvent extends TimerTask {
        public TimerMainEvent() {
        }
        public void run() {
            if(globel.isrun) {
            if(LED.isPolychromatic()){
                                if (globel.israndom == true) {
                                    String tmp = "";
                                    int tmpa;
                                    Random rndColor = new Random();
                                   for (int i=0;i<6;i++)
                                  {
                                    tmpa = rndColor.nextInt(16);
                                    if (tmpa == 10) tmp = tmp + "A";
                                    else if (tmpa == 11) tmp = tmp + "B";
                                    else if (tmpa == 12) tmp = tmp + "C";
                                    else if (tmpa == 13) tmp = tmp + "D";
                                    else if (tmpa == 14) tmp = tmp + "E";
                                    else if (tmpa == 15) tmp = tmp + "F";
                                    else tmp = tmp + tmpa;
                                   }
                                    LED.setColorConfiguration(150, 150, Integer.parseInt(tmp,16));
                                }
                                else {
                                    String tmp2 = "";
                                    int tmpa2 = 0;
                                    Random rndColor2 = new Random();
                                    tmpa2 = rndColor2.nextInt(9);
                                    switch (tmpa2) {
                                        case 1: tmp2 = "FF0000";break;
                                        case 2: tmp2 = "FF6100";break;
                                        case 3: tmp2 = "FFFF00";break;
                                        case 4: tmp2 = "00FF00";break;
                                        case 5: tmp2 = "FFFF00";break;
                                        case 6: tmp2 = "0000FF";break;
                                        case 7: tmp2 = "A020F0";break;
                                        case 8: tmp2 = "FFFFFF";break;
                                        default: tmp2 = "FFFFFF";break;
                                    }
                                       LED.setColorConfiguration(150, 150, Integer.parseInt(tmp2,16));
                                }
                            }
        }
    }
    }
代码中上面一部分是随机从000000-FFFFFF从抽取颜色,前面也讲过了,这样的效果不是太好,BB的LED大多时间下会显示接近白色的颜色。
下面一部分则是从红橙黄绿青蓝紫白中随机抽取颜色显示。这样整个LED player的功能都完成了,这一讲没有图片就略了。
下次将说说额外的东西,比如About菜单。
