智能LED灯 Android界面及串口发送数据实现
2015-07-26 22:26
441 查看
这个课题是小学期时我们组的大作业题目,老师让用Android实现,我们小组都没会Android的,只好临时看了看,代码写得比较丑,也参考了很多书上和网上的源代码,特别是GridView控件的使用。
1.首先是串口类和初始化的实现,这个网上有很多的代码,可以参考 点击打开链接
SerialPort、SerialPortFinder、Application、SerialPortActivity、SerialPortPreferences这几个类是现成的,如何没有设置端口的话向串口发送数据会出错,在手机上应该是不能运行的,我们是在试验箱上运行的。
2.多组LED控制实现
LEDControlActivity、GridItem类实现,代码会放在下面,主要实现长按GridView里的ImageView实现多项选中和点击Turn按钮向串口发送数据修改LED状态
3.定时控制
学长要关网辣,明天再补全
代码在:点击打开链接
1.首先是串口类和初始化的实现,这个网上有很多的代码,可以参考 点击打开链接
SerialPort、SerialPortFinder、Application、SerialPortActivity、SerialPortPreferences这几个类是现成的,如何没有设置端口的话向串口发送数据会出错,在手机上应该是不能运行的,我们是在试验箱上运行的。
2.多组LED控制实现
LEDControlActivity、GridItem类实现,代码会放在下面,主要实现长按GridView里的ImageView实现多项选中和点击Turn按钮向串口发送数据修改LED状态
/*--------重写MultiChoiceModelListener的方法------------------*/ @Override public boolean onCreateActionMode(ActionMode mode,Menu menu){ View v = LayoutInflater.from(this).inflate(R.layout.actionbar_layout, null); actionText = (TextView) v.findViewById(R.id.action_text); actionText.setText(formatString(ledGrid.getCheckedItemCount())); mode.setCustomView(v); getMenuInflater().inflate(R.menu.action_menu, menu); return true; } @Override public boolean onPrepareActionMode(ActionMode mode,Menu menu){ //如果item全部选中,则让全选按钮失效 // menu.getItem(MENU_SELECT_ALL).setEnabled(ledGrid.getCheckedItemCount() != ledGrid.getCount()); return true; } //全选和全不选 @Override public boolean onActionItemClicked(ActionMode mode,MenuItem item){ switch (item.getItemId()) { case R.id.menu_select: for(int i =0;i<leds.length;i++){ ledGrid.setItemChecked(i, true); selectMap.put(leds[i], true); } break; case R.id.menu_unselect: for(int i=0;i<leds.length;i++){ ledGrid.setItemChecked(i, false); selectMap.clear(); } break; } return true; } //销毁对象时更新Adapter @Override public void onDestroyActionMode(ActionMode mode){ gridAdapter.notifyDataSetChanged(); } //提示当前选中个数,并把选中项添加到selectMap中 @Override public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { actionText.setText(formatString(ledGrid.getCheckedItemCount())); if(checked == true){ selectMap.put(leds[position], checked); } else if(checked == false){ selectMap.remove(leds[position]); } mode.invalidate(); } /*--------重写MultiChoiceModelListener的方法------------------*/
3.定时控制
学长要关网辣,明天再补全
代码在:点击打开链接
相关文章推荐
- android 调用系统相机拍照 获取原图
- Android 四大组件学习之Service六
- 快速Android开发系列通信篇之EventBus
- Android(java)学习笔记129:Tab标签的使用
- android intent调用隐式调用系统
- Android Studio推荐几个非常有用的工具
- 常用的android弹出对话框
- Android Using Volley
- Android 开源框架Universal-Image-Loader完全解析(三)---源代码解读
- Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解
- android之我自己实现的下拉刷新
- Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
- Android之——自动挂断电话的实现
- 基于Ubuntu14.04的RK3288_PopMetal Android开发环境搭建过程小记
- 快速Android开发系列通信篇之EventBus
- Android 四种启动模式
- Android 服务器之FTP服务器上传下载功能的实现
- Android之——AIDL深入
- Windows风格的Loading动画Android实现(2)
- Android Canvas的save(),saveLayer()和restore()浅谈