
学习目的
1.掌握Android对终端设备状态数据的采集方法
2.掌握Android UI 应用程序开发
3.熟悉基于Android 的直流电机控制与窗帘自动控制
窗帘控制
控制窗帘的开、关、暂停等状态。点击相应的控制按钮,便可以控制窗帘到某个特定的状态。此外,窗帘图标显示对应的状态。窗帘控制界面如图2-29所示。
界面中窗帘图标表示窗帘的状态,其中:图标关闭表示实际状态“关闭”,如图标打开表示实际状态“打开”,如图标打开并有“STOP”字样,表示实际状态“停止”。
案例2-20 窗帘控制类实现
1. public class OperationCurtain extends Activity{
2. private int curtainState = O;//窗帘开关状态并初始化
3. @ Override
4. protected void onCreate(Bundle savedInstanceState) {
5. super. onCreate (savedInstanceState);
6. setContentView ( R.layout.activity_main);
7. final ImageView img =(ImageView) findViewByld(R.id.open) ;
8. private EnvMonitorDevic zigbee = EnvMonitorDevic.envMonitorDevice();
9. Button open = (Button) this.findViewById(R.id. butOpen);
10. Button close=(Button)this. findViewById(R.id.butClos);
11. Button stop =(Button)this. findViewById(R.id.butstop );
12. open. setOnClickListener(new OnClickListener(){
13. public void onClick(View v){
14. int result=1;
15. if( result ! = curtainState)//如果值与窗帘状态相比有改变
16. {
17. curtainState= result;
18. setCurtainState(curtainState);
19. img.setImageResource(R.drawable.open);
20.
21. }
22 else return;
23 }
24 });
25. close.setOnClickListener( new OnClickListener(){
26. public void onClick(View v){
27. int result= 0;
28 if( result ! = curtainState)//如果值与窗帘状态相比有改变
29. {
30 curtainState= result;
31. setCurtainState(curtainState);
32. img.setImageResource(R.drawable close);
33. }
34. else return;
35. }
36. });
37 . stop. setOnClickListener(new OnClickListener( ){
38. public void onClick(View v) {
39. int result = 2;
40 if ( result != curtainState)//如果值与窗帘状态相比有改变
41. {
42. curtainState = result;
43. setCurtainState( curtainState) ;
44. img. setImageResource( R. drawable.stop);
45.
46. }
47. else return;
48. }
49. });
50. public void setCurtainState(int curtainState)
51. {
51. {
52. switch(curtainState) {
53. case 0 :
54. zigbee.CloseCurtain( ) ;
55. break;
56. case l:
57. zigbee.OpenCurtain( ) ;
58. case 2 :
59. zigbee.StopCurtain( ) ;
60. }
61. }