博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Android

Android有关的技术文章
摘要:国内外的电台数据很多,起码有好几百,所以把这些数据都写到代码里面是不实际的。只能写成一个数据文件,程序启动的时候再去加载。保存这些简单数据,我们肯定会优先使用XML文件,今天讲讲如何读取XML里面的数据,然后填充到列表里面。 再把这张老截图贴出来,方便后面对应查看XML的数据。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)1、Android解析XML方法 Android里面读取XML文件有3种方法,其中两种是解析XML的常规方法:SAX和文档对象模型方法。以前我写C++的时候,最常用的是文档对象模型方法,因为这个方法遍历数据很方便,缺点是会把整个文... 阅读全文

posted @ 2013-08-02 09:25 泡泡糖 阅读(9686) 评论(7) 推荐(1) 编辑

摘要:Android4.0的Launcher自带了一个简单的分页指示器,就是Hotseat上面那个线段,这个本质上是一个ImageView利用.9.png图片做,效果实在是不太美观,用测试人员的话,太丑了。特别是搭配其他风格的图标和背景,的确不好看。所以打算自己重新写一个指示器。这个所谓的分页指示器作用很简单,就是告诉用户界面有多少分屏,目前处于第几分屏。当然目前也有一些Launcher增强了这个功能,只要滑动这些指示器就可以 快速滑动桌面。 今天给大家讲讲如何自定义一个分页指示器,并添加到Launcher里面使用,滑动切换功能后续再讲。默认的蓝色分页指示器~(PS:新建的QQ群,有兴趣可以加... 阅读全文

posted @ 2013-08-01 19:57 泡泡糖 阅读(11598) 评论(6) 推荐(4) 编辑

摘要:TextView一般都是用来显示一段文本,这里说的高级特性主要是一些我们平常不太常用的属性。包括文字阴影、自定义字体、html嵌入多格式、字体加粗、插入图片。这些特性平时开发APP的时候,可能一般使用不多,不过需要的时候却是很有用的特性。 之所以写这篇文章是因为今天修改Launcher里面界面字体的时候,遇到些问题,而Launcher的图标都是TextView做的,因此查找了一些TextView的特殊属性。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434) 1、文字阴影//Edited by mythou//http://www.cnblogs.com... 阅读全文

posted @ 2013-07-31 20:58 泡泡糖 阅读(13790) 评论(2) 推荐(1) 编辑

摘要:今天继续讲解Fragment组件的特性,主要是跟Activity的交互和生命周期的关系,我们前面已经说过Fragment是依赖于Activity的,而且生命周期也跟Activity绑定一起。下面我们看看Fragment跟Activity的关系。1、为Activity创建事件回调方法 在一些情况下, 你可能需要一个fragment与activity分享事件。 一个好的方法是在fragment中定义一个回调的interface, 并要求宿主activity实现它。当activity通过interface接收到一个回调, 必要时它可以和在layout中的其他fragment分享信息。例如, 如果.. 阅读全文

posted @ 2013-07-30 00:10 泡泡糖 阅读(17447) 评论(2) 推荐(1) 编辑

摘要:最近都在了解Android下的音视频,因为最近需要做一个多媒体中心的APP,其中了解了一个开源项目XMBC,一个十分强大的开源多媒体中心,而且可以应用在多个平台上,今天我们来了解一下这个强悍的开源项目。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)1、简介 下面摘录一段官网翻译的介绍,让大家先有个大概的了解: XBMC是一个优秀的自由和开源的(GPL)媒体中心软件。XBMC最初为Xbox而开发,可以运行在Linux、OSX、Windows、Android4.0系统。 2003年,一些兴趣相投的程序员创建了这个项目。XBMC是一个非盈利的项目,由遍布... 阅读全文

posted @ 2013-07-29 09:24 泡泡糖 阅读(4831) 评论(8) 推荐(0) 编辑

摘要:今天接着上一篇文章,讲解一下Fragment的控制,主要是切换View和页面替换等操作。还有就是如何获取Fragment的管理对象,以及与Activity的通信方式。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)1、管理Fragment要在activity中管理fragment,需要使用FragmentManager. 通过调用activity的getFragmentManager()取得它的实例.可以通过FragmentManager做一些事情, 包括:使用findFragmentById()(用于在activity layout中提供一个UI的fr.. 阅读全文

posted @ 2013-07-28 23:40 泡泡糖 阅读(26645) 评论(0) 推荐(0) 编辑

摘要:最近事情很忙,一个新项目赶着出来,但是很多功能都要重新做,一直在编写代码、Debug。今天因为一个新程序要使用Fragment来做,虽然以前也使用过Fragment,不过没有仔细研究,今天顺道写篇文章记录一下Fragment的使用。这文章主要参考了Android官网的介绍。 Fragment是Android3.0后增加的新控件,有点类似于Activity组件,也是用来承载各种View元素。Google增加这个玩意的目的是为了平板电脑里面可以复用部分显示的View,只要写好一个View,可以同时在手机和平板等不同尺寸的设备上使用。而且这个转换过程系统帮你搞定了。下面我们分类说说Fragme... 阅读全文

posted @ 2013-07-27 18:20 泡泡糖 阅读(12100) 评论(2) 推荐(1) 编辑

摘要:继续上一篇文章整理有关Android的基础知识,为面试做准备的可以看看哪些知识是遗漏了。资料都是网上整理来,纠正了一些错误,有部分解析加入个人理解!感谢分享相关知识的开发者。这些知识平常开发的过程中都经常使用到,温故而知新~16.Android常用控件的信息单选框(RadioButton与RadioGroup)RadioGroup用于对单选框进行分组,相同组内的单选框只有一个单选框被选中。事件:setOnCheckedChangeListener(),处理单选框被选择事件。把RadioGroup.OnCheckedChangeListener实例作为参数传入。多选框(CheckBox)每个.. 阅读全文

posted @ 2013-07-26 00:12 泡泡糖 阅读(2357) 评论(5) 推荐(0) 编辑

摘要:前面已经写过Hotseat分析的文章,主要是讲解如何在Launcher里面配置以及修改Hotseat的参数。今天主要是讲解一下如何在Hotseat里面的Item显示名称。这个小问题昨天折腾了半天,最后幸亏我亲爱的女朋友大人提醒了我,才想到原因。在此十分感谢我女朋友大人的提醒,幸好她不是做程序员,不然我就要失业了O(∩_∩)O哈哈~(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)默认Hotseat里面的元素都没有标题1、Hotseat隐藏文件夹标题 刚开始想解决这个问题的想法是找到按钮对象生成的地方,修改一下就好了。因为我上次分析Hotseat的时候,记... 阅读全文

posted @ 2013-07-25 09:31 泡泡糖 阅读(20445) 评论(1) 推荐(2) 编辑

摘要:上一篇文章说了使用SlidingMenu开源项目实现侧滑栏,今天主要是讲解多级列表ExpandableListView的使用,以及如何使用它实现电台分类管理。ExpandableListView是Android自带的一个实现多级列表的控件,可以理解为ListView的二维实现。下面将针对如何在项目里面使用ExpandableListView进行讲解。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)ExpandableListView效果图:1、引用ExpandableListView控件//Edited by mythou//http://www.cnb.. 阅读全文

posted @ 2013-07-24 12:01 泡泡糖 阅读(6731) 评论(7) 推荐(0) 编辑

摘要:今晚在复习Android基础的时候,找到了一些很有价值的基础知识,分享给给位Android的开发者。这些是基础知识,同时也可以当做面试准备。面试题其实是很好的基础知识学习,有空会好好整理相关基础知识。1.Activity的生命周期方法描述可被杀死下一个onCreate()在activity第一次被创建的时候调用。这里是你做所有初始化设置的地方──创建视图、设置布局、绑定数据至列表等。如果曾经有状态记录(参阅后述SavingActivityState。),则调用此方法时会传入一个包含着此activity以前状态的包对象做为参数。总继之以onStart()。否onStart()onRestar.. 阅读全文

posted @ 2013-07-24 00:16 泡泡糖 阅读(8689) 评论(5) 推荐(6) 编辑

摘要:上一篇文章总体规划了这个项目的情况,今天讲讲实现电台列表。今天其实主要想讲解的是SlidingMenu,也就是我们平时说的侧滑栏,现在很多应用都有用这种UI效果。SlidingMenu侧滑栏功能实现的方式很多,可以自己使用ViewGroup实现也可以自己绘图实现。我这里借用了一个开源项目SlidingMenu,因为我这里不是研究如何实现SlidingMenu,而且为了快速实现这种功能,所以就直接使用这个开源项目的成果。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)上面就是侧滑栏的效果,指定一边滑动,就可以拉出一个新的界面出来。1、工程里引用Slidin.. 阅读全文

posted @ 2013-07-23 09:28 泡泡糖 阅读(23231) 评论(7) 推荐(2) 编辑

摘要:今天做了个小功能,就是把我们程序Drawable里面的图片保存到data目录下面,然后另外一个程序需要读取data目录里面保存的图片。涉及了data目录读写。这功能看上去挺简单,不过实际做的时候还是遇到点问题,因此把相关读写代码记录下来,方便以后查阅。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434) 1、目录权限问题 Android默认是无法直接操作Data根目录和相关的目录,只能直接读写程序自己的私有目录,也就是/data/data/Package name/ ,默认只能操作这个目录,也就是我们想直接读写/data是做不到的。那什么情况下可以实现直... 阅读全文

posted @ 2013-07-22 19:33 泡泡糖 阅读(12369) 评论(0) 推荐(2) 编辑

摘要:最近打算利用业余时间,编写一个Android的网络收音机。因为我自己偶尔也喜欢听听广播,所以打算用业余时间编写一个网络版收音机。说起收音机,其实在工作中已经编写过一个,不过那个收音机是需要硬件支持,也就是说需要有特定的收音机芯片才可以使用。因为这个要跟芯片通信,还涉及通信协议。所以无法通用,手机上更加使用不了。所以才打算编写一个网络版的收音机。 因为这个项目打算利用业余空闲时间来做,所以进度可能会比较慢一些,目前想法是把它做得完善一些,网上有关网络收音机的开源项目貌似很少,我找了一下,没发现有成型的项目。等我把程序框架和基本功能实现了,打算把这个项目做成开源项目。下面是目前实现了简单的播... 阅读全文

posted @ 2013-07-22 09:54 泡泡糖 阅读(10576) 评论(12) 推荐(4) 编辑

摘要:上面一篇文章说了Android应用运行在dalvik里面分配的堆和栈内存区别,以及程序中什么代码会在哪里运行。今天主要是讲解一下Android里面如何分析我们程序内存使用情况。以便后续可以分析我们程序瓶颈,优化方案。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)1、APP默认分配内存大小 在Android里,程序内存被分为2部分:native和dalvik,dalvik就是我们普通的java使用内存,也就是我们上一篇文章分析堆栈的时候使用的内存。我们创建的对象是在这里面分配的,对于内存的限制是 native+dalvik 不能超过最大限制。andro... 阅读全文

posted @ 2013-07-21 22:51 泡泡糖 阅读(12763) 评论(0) 推荐(1) 编辑

摘要:昨天用Gallery做了一个图片浏览选择开机画面的功能,当我加载的图片多了就出现OOM问题。以前也出现过这个问题,那时候并没有深究。这次打算好好分析一下Android的内存机制。 因为我以前是做VC++开发,因此对C++在Window下的内存机制还是比较了解。不过转到Android后,一直都没有刻意去处理内存问题,因为脑子里一直想着Java的GC机制。不过现在想想,自己对Android的GC和内存管理并不了解,自己写的代码在内存哪里运行都不清楚,心里不淡定啊。。。。 毕竟我以前写C++的时候,什么时候在哪里申请内存,什么时候释放内存,会不会栈溢出或者堆内存泄露都了如指掌。言归正传,今天... 阅读全文

posted @ 2013-07-20 18:26 泡泡糖 阅读(13521) 评论(3) 推荐(3) 编辑

摘要:今天因为要做一个设置开机画面的功能,主要是让用户可以设置自己的开机画面,应用层需要做让用户选择开机画面图片的功能。所以需要做一个简单的图片浏览选择程序。最后选用Gallery作为基本控件。加入了一些炫一点的元素,做成3D滑动效果。下面是Demo例子截图: 这个效果网上已经很多人做出来了,只是这次需要用到,所以自己也实践了一下(这里例子我也是根据网上一些资料编写)。特意找了几张美女图片给大家养养眼,O(∩_∩)O哈!下面针对一些关键代码进行简要说明,需要做这方面东西的朋友可以看看。这篇文章是实用性文章,理论分析不多。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:32259... 阅读全文

posted @ 2013-07-19 23:05 泡泡糖 阅读(15027) 评论(2) 推荐(2) 编辑

摘要:上一次说了如何收集我们已经发布的应用程序的错误信息,方便我们调试完善程序。上次说的收集方法主要是把收集的信息通过Http的post请求把相关的异常信息变成请求参数发送到服务器。这个对做过web开发的人来说,服务端处理是很简单。不过对很多没做个web的人来说却是麻烦事。今天介绍个更简单的方法,我们把异常信息收集后,通过后台发送邮件方法,把相关异常信息发送到我们指定的邮箱里面。 这篇文章是实用性文章,不会涉及太多理论分析。主要是让大家看了以后知道怎么在自己的应用里面添加这个功能。下面附件Demo和关键代码是CSDN上面一个例子代码,我只把包链接和界面改了一下,方便阅读。因此不知道这Demo的... 阅读全文

posted @ 2013-07-18 17:14 泡泡糖 阅读(8137) 评论(2) 推荐(2) 编辑

摘要:前几天Boss就反应说,机器每次启动程序都会闪一下黑屏,这个客户不接受。没办法,只能想想怎么解决,最后找到了下面的方法。闪黑屏的原因主要是我们启动Activity的时候,需要跑完onCreate和onResume才会显示界面。也就是说需要处理一些数据后,才会显示。按照这种思路,是不是我把初始化的工作尽量减少就可以避免黑屏?事实是,就算你onCreate啥都不做,仍然会闪一下黑屏,因为初始化解析界面时需要一定时间。下面是解决办法:(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434) 1、自定义Theme//Edited by mythou//http://w... 阅读全文

posted @ 2013-07-17 16:18 泡泡糖 阅读(16822) 评论(4) 推荐(4) 编辑

摘要:我们写程序的时候都希望能写出一个没有任何Bug的程序,期望在任何情况下都不会发生程序崩溃。不过理想是丰满的,现实是骨感的。没有一个程序员能保证自己写的程序绝对不会出现异常崩溃。特别是针对用户数达到几十万几百万的程序,当你用户数达到一定数量级后,就算你的程序出现个别异常崩溃情况也不用惊讶。 既然我们写的程序都有可能发生异常崩溃,如果是还没发布的程序,我们可以通过测试抓取Log来分析。不过针对已经发布的程序,我们没法重现现象,所以让用户反馈程序异常信息就很重要。下面我们说说如何收集程序运行过程的异常信息。(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)1、... 阅读全文

posted @ 2013-07-16 21:17 泡泡糖 阅读(8215) 评论(5) 推荐(1) 编辑