2013年10月26日
摘要: Android上下文Context介绍 在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中时刻的在与它打交道,例如:Service、BroadcastReceiver、Activity等都会利用到Context的相关方法。说它陌生,完全是因为我们真正的不懂Context的原理、类结构关系。一个简单的问题是,一个应用程序App中存在多少个Context实例对象呢?一个、两个? 在此先卖个关子吧。读了本文,相信您会豁然开朗的 。 Context,中文直译为“上下文”,SDK中对其说明如下:Interface to global information abou 阅读全文
posted @ 2013-10-26 16:07 知行立远 阅读(449) 评论(0) 推荐(0)
摘要: 获取手机屏幕宽高Display display = getWindowManager().getDefaultDisplay();int width = display.getWidth();//宽int height = display.getHeight(); //高 阅读全文
posted @ 2013-10-26 16:05 知行立远 阅读(185) 评论(0) 推荐(0)
摘要: 安卓数据存储分为五大部部分一、共享存储共享文件可读可写,有专门的xml文件格式 文件路径为:data/data/项目包名称/shared_prefes二、数据库存储使用SQLite数据库存储 文件路径为:data/data/项目包名称/databases三、内部存储1、res/raw目录中,只读文件,没有目录结构,只有一层结构,没有文件路径2、assets目录中,只读文件,单独文件存储有大小限制,文件路径为:file:///android_asset/文件名3、files目录中,可读可写文件 文件路径为:data/data/项目包名称/files 【this.getFilesDir()可获得d 阅读全文
posted @ 2013-10-26 16:04 知行立远 阅读(325) 评论(0) 推荐(0)
摘要: 关于listView优化问题:阻止列表重复形状的加载,即选项样式的重复加载。加载一次即可,缓存到convertView其中notes为listView列表集合,note为列表中一个选项对象,有noteInfo、noteTime、isCheck三个属性,note_work_list_item为xml文件为列表每一项对象的样式,样式中有tv_noteInfo、tv_noteTime、cb_noteDel三个控件,对应note三个属性。/*** listView适配器*/BaseAdapter mBaseAdapter = new BaseAdapter(){// 封装ListView上的每一Vie 阅读全文
posted @ 2013-10-26 16:03 知行立远 阅读(227) 评论(0) 推荐(0)
摘要: 获取外部存储设备状态并计算其容量利用该类,直接调用即可,totalSpace为容量,freeSpace为剩余容量,例 String temp=MyUtil.convertStorage(MyUtil.getSDCardInfo().totalSpace);package com.lhy.filemanage.myutil;import java.io.File;import android.util.Log;public class MyUtil{/*** SD卡数据bean** @author User*/public static class SDCardInfo{public long 阅读全文
posted @ 2013-10-26 16:03 知行立远 阅读(442) 评论(0) 推荐(0)
摘要: 判断网络连接情况// 判断网络连接情况,利用广播boolean isNetWorkOk=false;【这里将网络状态连接情况保存在isNetWorkOk,其他地方要使用直接利用该布尔值判断就可以了】class MyNetWork extends BroadcastReceiver{@Overridepublic void onReceive ( Context context, Intent intent){myNetState(context, intent);}}public void myNetState ( Context context, Intent intent){// inte 阅读全文
posted @ 2013-10-26 16:02 知行立远 阅读(258) 评论(0) 推荐(0)
摘要: ListView和Adapter对象均具备有对象更新方法ListView对象列表的更新方法1、invalidate();--重绘组件2、invlidateView()--重绘组件并包含所有的ViewAdapter对象更新列表方法1、mBaseAdapter.notifyDataSetChanged();重绘当前可见区域,不可见区域滑动可刷新2、mBaseAdapter.notifyDataSetInvalidated() 重绘所有控件,会回到最原始的状态因此,为了更有效的考虑ListView对象更新的问题并采取有效的方法达到目的,就使用Adapter对象的notifyDataSetChange 阅读全文
posted @ 2013-10-26 16:02 知行立远 阅读(301) 评论(0) 推荐(0)
摘要: ListView列表刷新方法的区别ListView对象的刷新方法:listNote.invalidate();重绘所有组件listNote.invalidateViews();重绘组件【包含所有的view,也就连同数据】Adapter适配器刷新方法mBaseAdapter.notifyDataSetChanged();重绘当前可见区域,不可见区域滑屏后刷新mBaseAdapter.notifyDataSetInvalidated();重绘所有组件,还原初始状态 阅读全文
posted @ 2013-10-26 16:01 知行立远 阅读(609) 评论(0) 推荐(0)
摘要: 对于Application、 Activity、 Notification、 BroadCast、 Service这些组件的使用,对象的实例化问题各有不同,如何实例化以及在什么时候实例化也所有不同。一、如何实例化【应用程序】Application:回调OnCreate()方法实例化【活动】Activity:回调【生命周期】实例化【通知】Notification:需要实例化【关键字new】【广播】BroadCast:【系统自动实例化】在Androidmainfest.xml中注册即可,获取不了广播对象。【手动实例化】new关键字,用java代码程序注册,但是最后必须程序注销【服务】Service 阅读全文
posted @ 2013-10-26 16:01 知行立远 阅读(609) 评论(0) 推荐(0)
摘要: 2013-9-21问题一、不同的XML文件中相同类型的控件id相同,那么将这些不同的布局xml组合在一个大的布局中,如何解决相同id问题 ?解决办法:不同的布局文件XML要组合成一个新的大布局,必须使用include加载各个不同的xml,那么在这不同的XML文件组合到一起时,难免会有些空间的id有冲突,如果在主页面仍然利用this.findViewById(R.id.xxx)时找相应的控件时,编译器只会识别第一个,而后面的可能不会识别,所以,在利用include加载各个xml时,此时incldue在某种意义上讲已经是一个view了,那么给该include都命名一个不同的id,然后通过该id找该 阅读全文
posted @ 2013-10-26 16:00 知行立远 阅读(1983) 评论(0) 推荐(0)
摘要: Android网络编程之HttpClient运用在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient来方便我们使用各种Http服务。你可以把HttpClient想象成一个浏览器,通过它的API我们可以很方便的发出GET,POST请求(当然它的功能远不止这些)。 比如你只需以下几行代码就能发出一个简单的GET请求并打印响应结果:java代码:try {// 创建一个默认的HttpClientHttpClient httpclient = new DefaultHttpClient();// 创建一个GET请求. 阅读全文
posted @ 2013-10-26 15:58 知行立远 阅读(241) 评论(0) 推荐(0)
摘要: Android 网络编程之HttpURLConnection利用HttpURLConnection对象,我们可以从网络中获取网页数据.01URL url =newURL("http://www.sohu.com");02HttpURLConnection conn = (HttpURLConnection) url.openConnection();03conn.setConnectTimeout(6*1000);//设置连接超时04if(conn.getResponseCode() !=200)thrownewRuntimeException("请求url失败& 阅读全文
posted @ 2013-10-26 15:57 知行立远 阅读(176) 评论(0) 推荐(0)
摘要: Android 网络通信之Socket应用软件的网络通信无非就是Socket和HTTP,其中Socket又可以用TCP和UDP,HTTP的话就衍生出很多方式,基础的HTTP GET和POST请求,然后就是WebService的SOAP。在这些方式中,Socket当然是最基础的。服务端就不需要过多的说明了,无论采用什么语言什么平台都可以,只要遵循基本的Socket监听模式就行。实际上Android的Socket开发就是Java的Socket开发,因此学习过Java的开发人员也许觉得并没有什么难度,不过依然有一些不同于PC开发的地方需要注意首先是说说TCP开发JAVA里的TCP开发感觉比C#里简单 阅读全文
posted @ 2013-10-26 15:56 知行立远 阅读(373) 评论(0) 推荐(0)
摘要: SurfaceView介绍SurfaceView是视图(View)的继承类,这个视图里面内嵌了一个专门用于绘制的Surface。你可以控制这个Surface的格式和尺寸,而SurfaceView控制这个Surface的绘制位置,Surface是纵深排序的,这表明它总在自己所在的窗口的后面,SurfaceView提供了一个可见区域,只有这个可见区域内的surface部分内容才能可见,可见区域外的是看不到的。当然surface的排版显示会受到视图层级关系的影响,它的兄弟视图结点会在顶端显示,这意味着surface的内容将会被它的兄弟视图遮挡,这一特性可以用来放置遮盖物。注意:如果surface上面 阅读全文
posted @ 2013-10-26 15:54 知行立远 阅读(719) 评论(0) 推荐(0)
摘要: 安卓解析JSON文件根据JOSN文件的格式,文件只有两种数据,一是对象数据,以 {}为分隔,二是数组,以[]分隔以下介绍安卓如何解析一个JSON文件,该文件存放在assets目录下,即:assets/xx.json工程目录结构以及简单布局:要解析的JSON文件数据代码实现:package com.lhy.nojsonfile;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import org.json.JSO 阅读全文
posted @ 2013-10-26 15:53 知行立远 阅读(1297) 评论(0) 推荐(0)
摘要: Android网络编程之Http通信Android中提供的HttpURLConnection和HttpClient接口可以用来开发HTTP程序。以下是本人在学习中的总结与归纳。1. HttpURLConnection接口 首先需要明确的是,Http通信中的POST和GET请求方式的不同。GET可以获得静态页面,也可以把参数放在URL字符串后面,传递给服务器。而POST方法的参数是放在Http请求中。因此,在编程之前,应当首先明确使用的请求方法,然后再根据所使用的方式选择相应的编程方式。 HttpURLConnection是继承于URLConnection类,二者都是抽象类。其对象主要通过URL 阅读全文
posted @ 2013-10-26 15:53 知行立远 阅读(212) 评论(0) 推荐(0)
摘要: 一、创建数据库这里创建了note便签数据表,字段有noteId、noteTitle、noteTime、noteInfopackage com.lhy.notework.splite;import android.content.Context;import android.database.DatabaseErrorHandler;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sql 阅读全文
posted @ 2013-10-26 15:52 知行立远 阅读(458) 评论(0) 推荐(0)
摘要: 安卓解析XML文件主要有三种方式:DOM解析、SAX解析、PULL解析其中:DOM解析为等XMl文件全部加载后,然后根据需要解析的内容解析出所需的内容数据。SAX解析为从XML文件中执行一行,就解析一行XML文件,只要解析到所需要的内容数据为止。PULL解析在SAX的基础之上简化代码,由安卓提供解析方案,原理一样。以下为三种解析方法的应用方法,其中都是解析同一个XML文件【note_item.xml】,该XML文件在raw目录下的:raw/note.xml项目工程目录结构以及相关简单布局:代码实现:package com.lhy.xmlfiledom;import java.io.IOExce 阅读全文
posted @ 2013-10-26 15:50 知行立远 阅读(645) 评论(0) 推荐(0)
摘要: Android数据存储 之SQLite数据库简介SQLite的相关知识,并结合Java实现对SQLite数据库的操作。SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎。它支持大多数的SQL92标准,并且可以在所有主要的操作系统上运行。SQLite由以下几个部分组成:SQL编译器、内核、后端以及附件。SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),是调试、修改和扩展SQLite的内核变得更加方便。所有SQL语句都被编译成易读的、可以在SQLite虚拟机中执行的程序集。SQLite的整体结构图如下:值得一提的是,袖珍型的SQLite竟然可以支持高达2TB大小的数 阅读全文
posted @ 2013-10-26 15:49 知行立远 阅读(311) 评论(0) 推荐(0)
摘要: Android数据存储之Shared Preferences共享数据存储在Android中一共提供了4种数据存储方式,但是由于存储的这些数据都是其应用程序私有的,所以如果需要在其他应用程序中使用这些数据,就要使用Android提供的Content Provider(数据共享)。Android中4种数据存储方式分别如下。1、Shared Preferences:用来存储“Key-value paires”格式的数据。它是一个轻量级的键值存储机制,只可以存储基本数据类型。2、Files:它通过fileInputStream和FileOutputStream对文件进行操作。但是在Android中,文 阅读全文
posted @ 2013-10-26 15:48 知行立远 阅读(450) 评论(0) 推荐(0)
摘要: 安卓Service服务一 Service简介 Service是运行在后台的,没有界面的,用来处理耗时比较长的。Service不是一个单独的进程,也不是一个单独的线程。 Service有两种类型:本地服务(Local Service):用于应用程序内部远程服务(Remote Sercie):用于android系统内部的应用程序之间 前者用于实现应用程序自己的一些耗时任务,比如查询升级信息,并不占用应用程序比如Activity所属线程,而是单开线程后台执行,这样用户体验比较好。 后者可被其他应用程序复用,比如天气预报服务,其他应用程序不需要再写这样的服务,调用已有的即可。二 Service的生命. 阅读全文
posted @ 2013-10-26 15:47 知行立远 阅读(421) 评论(0) 推荐(0)
摘要: Notification通知创建由于通知是一个远程视图,所以创建通知在状态栏显示需要用到三个主要的对象:一、PendingIntent对象,用来承载Intent对象的,Intent对象主要是定义通知的意图去向二、Notification对象,该对象需要借助NotificationCompat 子类Build的对象通过build()方法获得。三、NotificationManger服务对象,该对象的主要作用是将notification对象发送通过notify()方法创建系统通知样式第一步:创建一个点击该通知栏启动其他Activity的Intent(意图)对象,该activity需要注册actio 阅读全文
posted @ 2013-10-26 15:45 知行立远 阅读(413) 评论(0) 推荐(0)
摘要: Android Notification通知简介根据activity的生命周期,在activity不显示时,会执行onStop函数(比如按下home键),所以你在onStop函数(按退出键除外)里面把notification放在通知栏里,再此显示时,把notification从通知栏里去掉。或者,只要程序在运行就一直显示通知栏图标。下面对Notification类中的一些常量,字段,方法简单介绍一下:常量:DEFAULT_ALL 使用所有默认值,比如声音,震动,闪屏等等DEFAULT_LIGHTS 使用默认闪光提示DEFAULT_SOUNDS 使用默认提示声音DEFAULT_VIBRATE 使 阅读全文
posted @ 2013-10-26 15:44 知行立远 阅读(265) 评论(0) 推荐(0)
摘要: Android Broadcast简单认识Broadcast是应用程序间传输信息的一种机制,BroadcastReceiver是对发送出来的广播(Broadcast)进行过滤并接收相应的一类组件。基本步骤:1.在要发送广播的地方,把要发送的信息和用于过滤的信息(Action、Category)装入Intent对象,通过调用sendOrderBroadcast()和sendStickyBroadcast()方法,把Intent发送出去。如:static final String INTENAL_ACTION_1="com.cuc.miti.BroastcastReceiver.Inte 阅读全文
posted @ 2013-10-26 15:43 知行立远 阅读(423) 评论(0) 推荐(0)
摘要: Android--Activity中使用Intent传值 Intent,又称为意图,是一种运行时绑定机制,它能在程序运行的过程中链接两个不同的组件(Activity、Service、BroadcastReceiver)。通过Intent,程序可以向Android表达某种请求或意愿,Android会根据意愿的内容选择适当的组件来请求。在这些组件之间的通讯中,主要是由Intent协助完成的。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。因此,Intent在这里. 阅读全文
posted @ 2013-10-26 15:43 知行立远 阅读(538) 评论(0) 推荐(0)
摘要: Intent和IntentFilter简介Intent和IntentFilter简介意图Intent分类:显式意图:利用class找到对方,在同一个应用程序类可以方便使用,但是在不同的应用程序无法调度隐式意图:利用action找到对方,可以给目标设置一个action,然后就可以在任意项目的应用程序都可以调用。服务和广播都会采取隐式意图 一个应用程序的三个核心组件 (活动,服务和广播接收器)都是通过消息即意图(Intents)来激活的。Intent消息传送是相同或不同应用中组件运行时晚绑定的一种机制。意图本 身(一个意图对象)是一个包含被执行操作抽象描述的被动的数据结构。或,对于广播而言,是某件 阅读全文
posted @ 2013-10-26 15:42 知行立远 阅读(711) 评论(0) 推荐(0)
摘要: Android菜单概述菜单是Activity的一个重要组成部分,它为用户操作提供了快捷的途径。Android提供了一个简单的框架来向程序中添加标准菜单 。一、创建一个菜单资源你需要在一个XML 菜单资源中定义一个菜单而不是在代码中,然后在代码中inflate这个菜单资源。使用菜单资源来定义菜单是一个很佳的做法,因为这样可以使界面与代码分离。并且在XML中更容易设计你的菜单。要创建一个菜单资源,先在你项目的res/menu/下创建一个XML文件,然后用以下元素建立菜单:定义一个菜单,它是菜单项的容器。 必须是文件的根节点,其内部可包含一个或多个和 元素。创建一个菜单项。菜单项中可以继续包含元素, 阅读全文
posted @ 2013-10-26 15:40 知行立远 阅读(744) 评论(0) 推荐(0)
摘要: ListView和Adapter对象均具备有对象更新方法ListView对象列表的更新方法1、invalidate();--重绘组件2、invlidateView()--重绘组件并包含所有的ViewAdapter对象更新列表方法1、mBaseAdapter.notifyDataSetChanged();2、mBaseAdapter.notifyDataSetInvalidated() 阅读全文
posted @ 2013-10-26 15:39 知行立远 阅读(172) 评论(0) 推荐(0)
摘要: 布局【ViewGroup】像素单位的变化:是用dip,而不是px,主要用于宽高的设置在Android中支持的描述大小区域的类型有以下几种。px(pixels)——像素:不同的设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。dip(device independent pixels)——设备独立像素:这个和设备硬件有关,一般哦我们为了支持WCGA、HVGA和QVGA推荐使用这个,不依赖于像素。等同于dp。sp(scaled pixels—best for text size)——带比例的像素。pt(points)——磅:1pt = 1/72英寸in(inches)——英 阅读全文
posted @ 2013-10-26 15:38 知行立远 阅读(299) 评论(0) 推荐(0)
摘要: AndroidUI的基本结构创建时间:2013-9-13 11:05更新时间:2013-9-13 11:05 阅读全文
posted @ 2013-10-26 15:37 知行立远 阅读(248) 评论(0) 推荐(0)
摘要: 视图组成View创建时间:2013-9-13 10:51更新时间:2013-9-13 11:04 阅读全文
posted @ 2013-10-26 15:36 知行立远 阅读(163) 评论(0) 推荐(0)
摘要: Android基本动画Android Animations动画使用详解一、动画类型Android的animation由四种类型组成:alpha、scale、translate、rotateXML配置文件中alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate画面转移旋转动画效果Java Code代码中AlphaAnimation渐变透明度动画效果ScaleAnimation渐变尺寸伸缩动画效果TranslateAnimation画面转换位置移动动画效果RotateAnimation画面转移旋转动画效果二、Android动画模式Anima 阅读全文
posted @ 2013-10-26 15:31 知行立远 阅读(189) 评论(0) 推荐(0)
摘要: 资源目录结构res为资源目录,主要以xml语法编写静态的资源。资源的命名标准:小写字母和数字,且以小写字母开头。资源的生成,为了和java语法沟通,资源文件会自动的生成在【gen】目录的R.java文件里面。资源为了适应不同的场景,会把不同场景资源区分开,区分方法为在资源目录后面加上-,例如一个图片分为高中低三种不同的分辨率,那么我们把这三个图片的名称取名一样,分别放在drawable-hdpi、drawable-ldpi、drawable-mdpi三个资源目录,Android操作系统会根据实际硬件环境去获取对应的图片drawable-xxxxx主要是针对不同尺寸和分辨率的资源解决方案layo 阅读全文
posted @ 2013-10-26 15:30 知行立远 阅读(292) 评论(0) 推荐(0)
摘要: Android Application基本组成部分四个核心的组件Activity活动,主要用于前台和用户交互,即UI,Activity只是加载一个View而并非一个UI对象Service服务,主要用于后台并不和用户交互,处理一些后台程序,这些程序往往是不需要和用户交互的,Service具备RPC(RemoteProcedureCallProtocol)——远程过程调用协议能力ContentProvider,数据提供主要用户数据在各个程序之间的共享,特别是sqlite数据库,因为sqlite数据库是独享的数据库,也就是每个应用程序自己独享自己的的数据库BroadcastReceiver,广播,主 阅读全文
posted @ 2013-10-26 15:26 知行立远 阅读(253) 评论(0) 推荐(0)
摘要: Android应用程序项目结构【src】:JAVA源代码目录【gen】:由系统自动生成的JAVA源码文件,不可修改,只可查看和使用加载的和依赖的类库【assets】:本地存储文件的一个文件夹【bin】:自动生成的编译好的android app的目录【libs】:加载第三放类库【res】:资源目录【AndroidManifest.xml】:Android应用程序项目的配置文件【progruard-project.txt、project.properties】混淆JAVA源代码的混淆器配置文件 阅读全文
posted @ 2013-10-26 15:25 知行立远 阅读(191) 评论(0) 推荐(0)
摘要: Android操作系统架构Android操作系统整体应用架构Android系统架构和一些普遍的操作系统差不多,都是采用了分层的架构,从他们之间的架构图看,Android系统架构分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。1.应用程序Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。2.应用程序框架开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能 阅读全文
posted @ 2013-10-26 15:23 知行立远 阅读(738) 评论(0) 推荐(0)