Android学习入门例子:打造Android版手机视频监控系统







关键词:

  作为一个程序员光看光说, 就是不动手自己实践一把, 那可不行, 即使那东西看上去很容易、很简单,哈哈! 这3天拿中午休息时间看了看Android相关博文/书籍, 抽晚上时间写了一个入门级DEMO,主要包含以下一些功能:

  1、基本控件的使用(TextView、EditText、Button、ImageView)

  2、菜单、提示对话框、进度对话框(OptionsMenu、Toast、AlertDialog、ProgressDialog)

  3、 线程与消息处理(Thread、Message、Handler、org.apache.http)

  模拟用户通过手机输入用户名、密码,然后通过HTTP POST方式提交数据给中心Web服务器进行合法性验证过程

  相关代码下载AndroidDemo.rar,希望对新手有所帮助,Android开发主要是Java语言, 所以如果你有一定的Java、C#这类面向对象语言开发基础,入门还是很容易的;而且其文档资源相当丰富,网上搜索下,可以找到一大把(如果你不想找,可以看我上一篇博文Android学习资料汇总,简单整理归纳下可以找到的一些Android学习资料);实际上看SDK提供的docs(内容较完整,齐全)、samples(功能演示例子);再去下个SDK源代码,然后让自己静下心来慢慢看,仔细体会,深入领悟其编程思想,还是挺有意思的。

  值得一提的Android界面开发,好像比较类似于Asp.Net, 也可以自定义主题风格(.net 2.0开始有)、布局(HTML标签元素)、资源(如WinForm开发经常用到的Resources.resx文件),这个可比采用C++来开发 Windows Mobile应用做UI方便多了;而且Android自带不少UI控件,默认风格就看上去挺不错,且允许用户自定义主题。要想尽快提高自己的水平,还是要多多实践,你没看到一代伟人都说了实践出真理。

  继续完善这个例子; 主要是新增了2个Activity, 显示设备与视频通道的TreeActivity, 浏览某一个通道的实时画面的ImageActivity. TreeActivity主要就是使用一个ListView控件按层次关系来显示区域、设备、视频通道信息。主要涉及以下几个方面知识点:

第1页 第2页 第3页 

  作为一个程序员光看光说, 就是不动手自己实践一把, 那可不行, 即使那东西看上去很容易、很简单,哈哈! 这3天拿中午休息时间看了看Android相关博文/书籍, 抽晚上时间写了一个入门级DEMO,主要包含以下一些功能:

  1、基本控件的使用(TextView、EditText、Button、ImageView)

  2、菜单、提示对话框、进度对话框(OptionsMenu、Toast、AlertDialog、ProgressDialog)

  3、 线程与消息处理(Thread、Message、Handler、org.apache.http)

  模拟用户通过手机输入用户名、密码,然后通过HTTP POST方式提交数据给中心Web服务器进行合法性验证过程

  相关代码下载AndroidDemo.rar,希望对新手有所帮助,Android开发主要是Java语言, 所以如果你有一定的Java、C#这类面向对象语言开发基础,入门还是很容易的;而且其文档资源相当丰富,网上搜索下,可以找到一大把(如果你不想找,可以看我上一篇博文Android学习资料汇总,简单整理归纳下可以找到的一些Android学习资料);实际上看SDK提供的docs(内容较完整,齐全)、samples(功能演示例子);再去下个SDK源代码,然后让自己静下心来慢慢看,仔细体会,深入领悟其编程思想,还是挺有意思的。

  值得一提的Android界面开发,好像比较类似于Asp.Net, 也可以自定义主题风格(.net 2.0开始有)、布局(HTML标签元素)、资源(如WinForm开发经常用到的Resources.resx文件),这个可比采用C++来开发 Windows Mobile应用做UI方便多了;而且Android自带不少UI控件,默认风格就看上去挺不错,且允许用户自定义主题。要想尽快提高自己的水平,还是要多多实践,你没看到一代伟人都说了实践出真理。

  继续完善这个例子; 主要是新增了2个Activity, 显示设备与视频通道的TreeActivity, 浏览某一个通道的实时画面的ImageActivity. TreeActivity主要就是使用一个ListView控件按层次关系来显示区域、设备、视频通道信息。主要涉及以下几个方面知识点:

第1页 第2页 第3页 

  接上页

  1、通过HTTP POST方式获取服务端响应的JSON格式数据

  json格式当前被大量应用于web数据传输,你可以在这里了解什么是json;因为服务端采用Java开发,可以采用的json库很多,比较常见的如org.json(不需要额外的jar包,Android内置json格式数据解析包就是这个;但好像对自定义实体类支持不太好,也有可能是我不会用,因为以前做web开发都是采用xml来传输服务端响应的数据),json-lib(功能强大,但需要附带一些其他jar包,其通过反射方式来实现对用户自定义bean支持),最终啥都没有采用,直接Override toString() 方法简单处理下。

  代码

  @Override

  public String toString()

  {

  if(entType == 1)

  {

  return "{\"id\":" + id + ", \"code\":\"" + beloneto + "\", \"name\":\"" + hostName + "\"}";

  }

  else

  {

  return "{\"id\":" + id + ", \"code\":\"" + beloneto + "\", \"name\":\"" + hostName

  + "\", \"entType\":" + entType + ",\"type\": " + dvrType + ", \"ip\":\""

  + ip + "\", \"channel\":" + VchList.toString() + "} ";

  }

  }

  2、自定义ListView Adapter、列表项布局

  可以通过自定义Adapter类灵活控制数据呈现与相关业务逻辑的处理,实现带图标显示、简单树形层次

  3、简单数据存储配置SharedPreferences

  SharedPreferences最终生成就是一个xml文件,很类似于Asp.Net开发中的Web.config或WinForm下的App.config,可以用于一些配置信息的存放,功能等同于Windows SDK开发中常用的ini文件。刚好博客园Terry_龙有一篇专门博文 Android 小项目之--数据存储【Shared Preferences】(附源码)讲述SharedPreferences的使用,大家可以参考。

  4、Intent、Bundle类简单使用

  接下来再简单介绍下ImageActivity,主要是获取TreeActivity通过Bundle传递过来的视频通道ID、名称等信息,然后开启一线程,间隔指定时间实时获取该路视频的视频画面,关键就是通过URLConnection、 BitmapFactorydecodeStream(InputStream is)方法生成Bitmap,然后交给ImageView控件显示。该线程与UI线程交互通过消息 Handler.sendMessage(Message

第1页 第2页 第3页 

  接上页

msg)来处理,如果连续尝试请求5次数据都失败,则弹出对话框提示用户,并关闭当前ImageActivity。

 

  5、全球化、本地化资源

  在Android上处理这方面倒是比较容易,一句话就是定义对应的资源;在res目录下新建对应目录如values-en-rUS表示用户在设置 -->选择区域为美国时界面对应字符串显示,横竖屏、不同分辨率处理也是通过类似方式处理,例如drawable-land-160dpi

 

  一个好的应用服务需要好的大量内容提供支持,我在网上搜索了一把,很遗憾没有找到对外开放允许访问的设备;如果有对公共开放的,如道路监控摄像头、动物园、公园啥的,倒可以好好利用一把,看看路况,看看风景,如果能够看看大熊猫啥的那是更加好。AndroidDemo2.rar也就是说你下载到的demo是无法看到效果的,据说国外一些设备倒是支持http或rtsp访问并返回JPEG图片,也有不少设备对公众开放,如在CodeProject上看到的采用C#开发多路IP摄像机的视频监控系统(效果如图下),好像就是采用这一模式实现的。

  由于自己也是刚开始学习Android,相关资料方面 - 电子文档eoeAndroid特刊以及近期在博客园连载的大话企业级Android开发都挺不错的,可以让初学者能够快速了解什么是Android,顺利进入Android开发领域。书籍方面博客园知识库就有介绍,以及相关博客内容也很多,可以看我博文Android学习资料汇总中的简单整理;当然更加详尽的资源,如果你有安装Android sdk 可以在其目录下找一下docs文件夹, 这个是google提供的类似于msdn的本地文档库,只是好像是英文的,但内容很全,带所有api说明(汗一下先,这个当前我利用远远不够)。

  作者:peterzb(个人开发历程知识库 - 博客园)

  出处:http://peterzb.cnblogs.com/

  文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

第1页 第2页 第3页 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值