Android
huzhigenlaohu
这个作者很懒,什么都没留下…
展开
-
AndroidAnnotation在Eclipse环境下部署android 项目
学习android的时候,网络下载个Demo,使用了AndroidAnnotation,就自己新建了个工程试着弄了下,算了属于好奇心吧! 整天享受着将Bug杀死那时的成就感! 如题,下面说下在Eclipse下如何部署AndroidAnnotation(其好处就不多说了,一句话:Fast Android Development. Easy maintainance.)原创 2015-01-08 22:13:04 · 483 阅读 · 0 评论 -
Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences
除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data//shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。实现SharedPreferences存储的原创 2014-12-27 20:05:32 · 551 阅读 · 0 评论 -
android中listView下拉刷新
Android的ListView是应用最广的一个组件,功能强大,扩展性灵活(不局限于ListView本身一个类),前面的文章有介绍分组,拖拽,3D立体,游标,圆角,而今天我们要介绍的是另外一个扩展ListView:下拉刷新的ListView。 下拉刷新界面最初流行于iphone应用界面,如图: 然后在Android中也逐渐被应用,比如微博,资讯类。 所以,今天要实原创 2014-12-08 11:41:49 · 681 阅读 · 0 评论 -
仿新浪微博的ListView下拉更新功能
由于最近做的项目中也用到了这个功能,今天刚好实现了下,就趁现在有时间写篇博客分享下。在做的时候也参考了下别人的代码,毕竟站在巨人的肩膀上才会是自己更加强大。哈哈!先看看新浪的下拉更新是什么样的吧! OK,今天我们要实现的就是上面的下拉刷新功能。 首先实现下拉刷新的布局文件 layout/head.xml[html]原创 2014-12-08 11:38:52 · 666 阅读 · 0 评论 -
android tabhost底部菜单栏实现原理与代码
底部菜单栏很重要,我看了一下很多应用软件都是用了底部菜单栏做,我这里使用了tabhost做了一种通用的(就是可以像微信那样显示未读消息数量的,虽然之前也做过但是layout下的xml写的太臃肿,这里去掉了很多不必要的层,个人看起来还是不错的,所以贴出来方便以后使用上一个项目已经做完了,这周基本上没事,所以整理了下以前的项目,想把一些通用的部分封装起来,这样以原创 2014-12-07 18:56:09 · 1473 阅读 · 0 评论 -
Android中解析XML
XML在各种开发中都广泛应用,Android也不例外。作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能。今天就由我向大家介绍一下在Android平台下几种常见的XML解析和创建的方法。在Android中,常见的XML解析器分别为SAX解析器、DOM解析器和PULL解析器,下面,我将一一向大家详细介绍。SAX解析器:SAX(Simple API原创 2014-12-06 21:09:08 · 472 阅读 · 0 评论 -
ScrollView嵌套ScrollView
大家好,众所周知,android 里两个相同方向的ScrollView是不能嵌套的,那要是有这样的需求怎么办?(这个需求一般都是不懂android的人提出来的)难道就真的不能嵌套吗? 当然可以,只要你再写一个ScrollView,在里面做点脚,它就支持嵌套了。目前做的这个只支持两个ScrollView嵌套,两个以上还有待改进,能套两个就已经能满足很多需求了,呵呵,另外现在只做了纵向原创 2014-12-08 11:11:02 · 582 阅读 · 0 评论 -
android 设置Button或者ImageButton的背景透明
(1)修改配置文件android:id="@+id/btnAppMore" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="详细信息>>" android:layout_alignParentRight="true"原创 2014-12-08 11:03:29 · 36976 阅读 · 3 评论 -
Android底部菜单的封装及重用
在Android的应用中,经常会见到底部菜单,例如微信的底部菜单如下所示: 而在企业级的Android应用中,也存在同样的需求,但与微信这些大众软件的区别在于企业级的Android应用由于UI页面很多,每个页面都需要有底部菜单,而且每个页面的底部菜单按钮还可能完全不一样,所以,为了使每个页面保持一致性并为UI页面制作时提供便利,针对底部菜单进行专门的设计封装,就显得特别重要。原创 2014-12-07 17:02:06 · 650 阅读 · 0 评论 -
Android 分页控件制成底部菜单.
其实Android 中的底部菜单, 可以用分页控件很好的实现。 我们先将自定义分页控件做好, 就可以做到顶底两个位置的菜单了。TabHost只是作为一个容器来存放一些Activity, 所以需要自己另外创建几个新的Activity, 然后由主TabHost加载。tab_style.xml 是每个Tab的自定义样式?1原创 2014-12-07 16:58:58 · 1910 阅读 · 0 评论 -
设计模式 浅析
最近参加面试,总是被问到设计模式的问题。本人作为一个实用派,完全没搞懂作为一个功能的实现者,设计模式到底有多重要。当然,本人的意思不是说设计模式没用或者不该了解,但是这是一个度的问题,简单的模式,常用的模式,了解并会用,是必然的,但是其他模式,更深层的东西,也许留给架构师来理解更好。毕竟程序员不是架构师,要是程序员懂的知识和架构师一样多,那么,还要架构师来干什么呢? 于此苦闷中,特出来分享一原创 2014-12-27 20:08:09 · 684 阅读 · 1 评论 -
Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite
SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是: NULL: 空值 INTEGER: 整数 REAL: 浮点数 TEXT: 字符串 BLOB: 大数据 在SQLite中,并没有专门设计BOOLEAN和DATE类型,因为BOOLEAN型可以用INTEGER的0和1代替true和false,而DATE类型则可以拥有特原创 2014-12-27 20:03:36 · 486 阅读 · 0 评论 -
Eclispe无法正常启动?一直显示Loading org.eclipse.ui.editor
昨天还用的好好的,今天大早(其实不早了,~-~,瞌睡多,程序员的时钟都是乱的)过来open eclipse,莫名其妙的等了10几分钟还是是一直显示oading org.eclipse.ui.editor,无法进入???此时,我也是醉了,作为一个新手,还是先问百度吧,搜索到很多答案啊,但是我只能表示呵呵,什么玩意儿嘛都是说删除eclipse工作空间下.metadata文件夹,对eclipse原创 2015-05-03 10:20:00 · 3859 阅读 · 0 评论 -
Android开源游戏引擎之Angle
下面先把下载下来的Angle v1.0.zip解压,然后把工程导入eclipse,Run as Android Application,让它在手机上跑起来(由于模拟器太卡太慢,有了Android手机之后,我一般是直接用手机调试程序的)。 如果你的手机是2.2或2.3的,可能会出现下面一个问题,在运行之后打开任意一个demo,然后按返回键回到菜单,然后会出现一个错误,logcat同时打印以原创 2015-04-09 20:34:18 · 2261 阅读 · 0 评论 -
一些完整的Android开源app项目
android开源项目有很多,但是完整的app项目不多,下面是最近我 整理的一些开源app项目:注: jcodecraeer网站上搜集了很多开源项目,更新很快,非常值得关注。一、photoup介绍:photoup 是一款开源的相册类app,主要功能是将本地图片提交到facebook上去,虽然他的功能和facebook的远程服务相关,但是本身是可以被当作一款 相册应原创 2015-04-10 18:21:37 · 3954 阅读 · 0 评论 -
Android相关属性的介绍:android:exported
android:exported这个属性用于指示该服务是否能够被其他应用程序组件调用或跟它交互。如果设置为true,则能够被调用或交互,否则不能。设置为false时,只有同一个应用程序的组件或带有相同用户ID的应用程序才能启动或绑定该服务。它的默认值依赖与该服务所包含的过滤器。没有过滤器则意味着该服务只能通过指定明确的类名来调用,这样就是说该服务只能在应用程序的内部使用(因为其他外部使用者原创 2015-01-25 23:52:40 · 555 阅读 · 0 评论 -
Android Animation学习笔记
关于动画的实现,Android提供了Animation,在Android SDK介绍了2种Animation模式:1. Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种渐变动画;2. Frame Animation:顺序播放事先做好的图像,是一种画面转换动画。动画类型下面先来看看Android提供的动画类型。Android的原创 2015-01-03 13:30:00 · 440 阅读 · 0 评论 -
Android之SurfaceView详解
SurfaceView介绍通常情况程序的View和用户响应都是在同一个线程中处理的,这也是为什么处理长时间事件(例如访问网络)需要放到另外的线程中去(防止阻塞当前UI线程的操作和绘制)。但是在其他线程中却不能修改UI元素,例如用后台线程更新自定义View(调用View的在自定义View中的onDraw函数)是不允许的。 如果需要在另外的线程绘制界面、需要迅速的更新界面或则渲染UI界面需要较原创 2015-01-01 21:21:52 · 892 阅读 · 0 评论 -
Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider
ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制。一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制。并且此种方式忽略了底层的数据存储实现,ContentProvider提供了一种统一的通过Uri实现数据操作的方式。其步骤为: 1. 在当前应用程序中定义一个ContentProvider。 2. 在当前应用程序的AndroidMani原创 2014-12-27 20:06:52 · 537 阅读 · 0 评论 -
targetSdkVersion和与target属性的区别
AndroidMenifest.xml中targetSdkVersion和project.properties中的target属性的区别 在AndroidMenifest.xml中,常常会有下面的语句: 在project.properties中,会看到下面的语句: target=android-10 如果是使用Eclipse的话,还可能会看到这样的警告:A原创 2014-12-28 10:09:20 · 831 阅读 · 0 评论 -
Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览
作为一个完成的应用程序,数据存储操作是必不可少的。因此,Android系统一共提供了四种数据存储方式。分别是:SharePreference、SQLite、Content Provider和File。由于Android系统中,数据基本都是私有的的,都是存放于“data/data/程序包名”目录下,所以要实现数据共享,正确方式是使用Content Provider。 SQLite: SQLit原创 2014-12-27 20:01:49 · 539 阅读 · 0 评论 -
高手速成android开源项目【tool篇】
主要包括那些不错的开发库,包括依赖注入框架、图片缓存、网络相关、数据库ORM建模、Android公共库、Android 高版本向低版本兼容、多媒体相关及其他。一、依赖注入DI通过依赖注入减少View、服务、资源简化初始化,事件绑定等重复繁琐工作AndroidAnnotations(Code Diet)android快速开发框架项目地址:https://githu原创 2015-01-08 11:48:49 · 518 阅读 · 0 评论 -
AndroidAnnotations 框架写Android
使用AndroidAnnotations框架写Android代码,减少代码量。清晰易懂。更多看http://androidannotations.org/或者https://github.com/excilys/androidannotations/wiki点击(此处)折叠或打开package com.googlecode.androidanno原创 2015-01-07 13:37:21 · 839 阅读 · 0 评论 -
Android与服务器端数据交互(http协议整合struts2+android)
在android中有时候我们不需要用到本机的SQLite数据库提供数据,更多的时候是从网络上获取数据,那么Android怎么从服务器端获取数据呢?有很多种,归纳起来有一:基于Http协议获取数据方法。二:基于SAOP协议获取数据方法,三:忘了-------那么我们的这篇文章主要是将关于使用Http协议获取服务器端数据,这里我们采取的服务器端技术为java,框架为Struts2,或者可以有S原创 2014-10-07 10:32:06 · 526 阅读 · 0 评论 -
[Android]异步任务AsyncTask使用解析
AsyncTask主要用来更新UI线程,比较耗时的操作可以在AsyncTask中使用。AsyncTask是个抽象类,使用时需要继承这个类,然后调用execute()方法。注意继承时需要设定三个泛型Params,Progress和Result的类型,如AsyncTask:Params是指调用execute()方法时传入的参数类型和doInBackgound()的参数类型Progres转载 2014-10-07 15:02:45 · 464 阅读 · 0 评论 -
Google 地图 API 参考
Google 地图 API 参考Google 地图 API 参考Google 地图 API 现在与 Google AJAX API 载入器集成,后者创建了一个公共命名空间,以便载入和使用多个 Google AJAX API。该框架可让您将可选 google.maps.* 命名空间用于当前在 Google 地图 API 中使用的所有类、方法和属性,使用此命原创 2014-10-06 17:22:33 · 1994 阅读 · 0 评论 -
Android程序 依赖库引用Gson 报java.lang.NoClassDefFoundError: com/google/gson/Gson 解决
Android 程序所依赖一个Library程序B , B 程序中用到格式化json串,转换成标准json串的要求 public static String jsonFormatter(String uglyJSONString) { Gson gson = new GsonBuilder().setPrettyPrinting().create(); JsonParser j原创 2014-10-06 17:17:56 · 2542 阅读 · 0 评论 -
关于微博服务端API的OAuth认证实现
新浪微博跟update相关的api已经挂了很多天了一直没有恢复正常,返回错误:40070 Error limited application access api!,新浪开放平台的论坛里n多的人都在等这个恢复,新浪官方也相当的恶心出问题了连个公告都没有,既不说什么原因又不说什么时候能恢复,。还是有版主说是api正在升级礼拜1恢复正常今天都礼拜2了还是不行。基于这个原因我的android版的新浪微博原创 2014-10-06 20:15:08 · 824 阅读 · 0 评论 -
Android 发送短信 和 打电话 具体事项
发送短信的方法 有两种方法可以实现发送短信,其一是使用intent-startActivity,URI数据格式为"smsto:num",调用的action为Intent.ACTION_SENDTO:Uri uri = Uri.parse("smsto:5554");Intent it = new Intent(Intent.ACTION_SENDTO, uri)原创 2014-10-06 15:19:52 · 777 阅读 · 0 评论 -
Android采用ListView实现数据列表显示
要将数据库中的数据列表显示在屏幕上,我们要使用ListView这个控件,当用户从数据库中取出数据时,要将数据绑定到显示控件上,如何绑定呢,我们需要创建适配器进行绑定,创建适配器有两种方式:第一种是用SimpleAdapter创建(要求绑定的数据是List>数据类型)第二种是用SimpleCursorAdapter创建(要求绑定的数据是Cursor数据类型)显示效果如图所示:原创 2014-10-05 23:11:57 · 679 阅读 · 0 评论 -
Gson通过借助TypeToken获取泛型参数的类型的方法
最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下。由于Java泛型的实现机制,使用了泛型的代码在运行期间相关的泛型参数的类型会被擦除,我们无法在运行期间获知泛型参数的具体类型(所有的泛型类型在运行时都是Object类型)。但是有的时候,我们确实需要获知泛型参数的类型原创 2014-10-05 22:54:06 · 598 阅读 · 0 评论 -
android开发之interpolator的用法详解
android:interpolator Interpolator 被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。 android中的文档内容如下: AccelerateDecelerateInterpolato原创 2014-10-05 20:25:49 · 651 阅读 · 0 评论 -
ExpandableListView实现二层和三层列表源码
二层列表是直接用androidAPI中的ExpandableListView即可实现,三层列表其实是对二层列表的一个嵌套,实现起来会相对繁琐。部分代码:SuperTreeViewAdapter.javapublic class SuperTreeViewAdapter extends BaseExpandableListAdapter { static public原创 2014-10-07 19:26:09 · 1190 阅读 · 0 评论 -
Android ExpandableListView的使用
ExpandableListView(可扩展的ListView) ExpandableListVivew是ListView的子类,它在普通ListView的基础上进行了扩展,它把应用中的列表项分为几组,每组里 又可包含多个列表项。ExpandableListVivew的用法与普通ListView的用法非常相似,只是ExpandableListVivew 显示的列表项应该由Exp原创 2014-10-07 19:31:30 · 1291 阅读 · 0 评论 -
Android new Message()和Message.obtainMessage的区别
前几天需要实现一个以太网功能就看了以太网的源码部分,看见了源码部分在消息处理时,发现有一些不同的地方: 平时我在处理消息时: 1、首先创建Handler对象: private Handler handler = new Handler(){public void handleMessage(Message msg) {switch (原创 2014-11-08 13:27:07 · 1084 阅读 · 0 评论 -
ANDROID 开发一个新闻阅读器之新闻列表
1. 功能描述这一讲中我们将对如何实现新闻列表做一个详细的介绍,新闻列表会把所有我们从网上获取的新闻的标题显示给用户,用户通过阅读标题,选择自己想要查看的新闻,进入具体的新闻显示页。下图是我们设计的样式,最上方的按钮栏这边不再多做介绍了,相信看过前几章的读者已经如何实现这个按钮栏了。按钮栏下方就是新闻列表,里面会显示一个ImageView 和 一个 Tex原创 2014-11-23 10:58:06 · 1175 阅读 · 1 评论 -
Android基础——HTML网页源码的获取
permission的添加灰常简单,但是简单却不简约……我是真心尝到了不加permission的苦……在Androidmanifest.xml里添加以下两行就ok. then.就口以添加关于抓取网页的代码了。主要就是俩函数,一个负责连接网页(testGetHtml()),一个用于读取源码(readStream()):public static原创 2014-11-23 10:55:15 · 1025 阅读 · 0 评论 -
android错误之Unable to resolve target 'Google Inc.:Google APIs:5'
在导入一个项目是,出现Unable to resolve target 'Google Inc.:Google APIs:6' 按下面方式解决: 修改目录下的project.property文件内容为target=Google Inc.:Google APIs:16(在这里他本来可能是其他版本号,不用管它,只需要改成你所导入的包的版本就行,比如我这里已经导入就是api1原创 2014-10-04 16:09:16 · 701 阅读 · 0 评论 -
Unable to resolve target 'android-i'
重新装完Ecplise+ATD+Android SDK 在Ecplise工作空间导入之前写过的Android项目会出现错误,大部分是SDK 版本不符,如下错误提示:Error:Unable to resolve target android-5解决办法:修改工程目录下的project.properties文件里的内容target=android-5数字改成你机器里装过的android原创 2014-10-04 09:11:28 · 532 阅读 · 0 评论 -
Android项目遇到"TheType R is already defined"
在低于SDK1.5版的项目时,有时会在Eclipse下面的Problems中看到"The Type R is already defined"的提示,表示R被重复定义了,通常是由于旧版SDK与新版SDK生成R.java的文件夹不同所致。这时只要打开"src"目录,把该目录中最下层由旧SDK生成的"R.java"文件删除,只留下"gen"目录下的"R.java"文档即可。原创 2014-10-04 10:19:37 · 1007 阅读 · 0 评论