除了显示红澄黄绿青蓝紫白外,程序还希望用户能自己输入指定的颜色代码。那么这样我们的程序就需要变得复杂一点。我们需要给用户一个输入框,并且只能输入0-9,A-F,而且位数是6位,说明项字体调整小一点。
final EditField editfield = new EditField("Please input 6 digital or [A-F] behind the below [0x00].For Example:[0x00FFFF00]/nRGB = 0x00","",6,EditField.EDITABLE); Font font = Font.getDefault().derive(Font.PLAIN,6,Ui.UNITS_pt); editfield.setFont(font); add(editfield);
另外可以看到上文还有一个disco模式,就是像舞厅一样,随机闪颜色。在程序里,定义了两种随机,一种是从上面8个颜色中随机,另一种是0x00000000到0x00FFFFFF随机。第二种方式产生的大多值在真机上都会和白色差不多,所以并不十分像DISCO。
RichTextField text1 = new RichTextField(); text1.setText("Random from 0x00000000 to 0x00FFFFFF:"); text1.setFont(font); add(text1); add(rbField11); RichTextField text2 = new RichTextField(); text2.setText("Random above defined 8 Colors"); text2.setFont(font); add(text2);
最后我们还需要为用户建两个可以输入数字的框,用来控制LED灯亮的时间和灯灭的时间。
final BasicEditField editfield2 = new EditField("Time in milliseconds the LED should turn /non for if blinking = ","500",5,BasicEditField.FILTER_NUMERIC); final BasicEditField editfield3 = new EditField("Time in milliseconds the LED should turn /noff for if blinking = ","500",5,BasicEditField.FILTER_NUMERIC); add(editfield2); add(editfield3);
对于颜色的构成,可以参见《常用RGB颜色表》http://www.tiandiyoyo.com/?p=218
文章评分1次,平均分5.0:★★★★★