摘要: Android平台已经给我们提供了很多标准的组件,如:TextView、EditView、Button、ImageView、Menu等,还有许多布局控件,常见的有:AbsoluteLayout、LinerLayout、RelativeLayout、TableLayout等。但随着人们对视觉的需求,基本组件已无法满足人们求新求异的要求,于是我们常常会自定义组件,用来实现更美观的UI界面。实现自定义控件通常有两种途径,一种是继承View类,重写其中的重要方法,另一种是继承ViewGroup类,通过重写父类中的有些方法,达到重新绘制组件的目的。最近做了一个自定义表格控件的练习,从中总结到一些经验。在 阅读全文
posted @ 2013-02-05 10:55 mmy--博客园 阅读(16680) 评论(0) 推荐(1) 编辑
摘要: 在Java程序中,由于系统类库的支持,分割字符串变得很容易,但是,在使用spilt方法时,有些细节不容忽视。当使用"+"、"?"、"\"、"*"、"^"、"."等特殊字符分割字符串时,若不进行特殊字符的转义,将得不到正确的结果,有些还会报错。仔细研究API中spilt方法的介绍,才知晓其中原委。API中的描述,public String[] spilt(String regex),从参数名即可看出,方法传入的参数不是任意的字符串,而是正则表达式,spilt方法实质上是调用的m 阅读全文
posted @ 2013-01-31 09:37 mmy--博客园 阅读(6144) 评论(0) 推荐(0) 编辑
摘要: Android进程间的通信通过轻量级的RPC(Remote Procedure Call远程进程调用)和ADIL(Android Interface Definination Language Android接口定义语言)规范实现的。Android通过自己的接口定义语言,使用户很方便地定义出一个接口作为规范,通过一个远程Service为代理 ,客户端在绑定该远程Service过程中获取远程对象,进而使用该对象。首先使用AIDL语言定义服务接口,其扩展名为.aidl,该文件会被自动译成同名的Java文件,存放在gen目录下,用户不能对该文件进行修改,如:package com.demo.serv 阅读全文
posted @ 2013-01-28 09:45 mmy--博客园 阅读(321) 评论(1) 推荐(0) 编辑
摘要: 多线程编程在各种编程语言中,对我来说都是难点,不容易掌握,关于Android中的多线程编程,通过书籍和网络,简单的总结一下。在进行UI更新、耗时操作、游戏开发等需要多线程。Android中多线程编程,主要涉及到三个类:Looper、Handler和Message。依次简单的介绍一下。Looper类用来创建消息队列. 每个线程最多只能有一个消息队列, android中UI线程默认具有消息队列, 但非UI线程在默认情况下是不具备消息队列的. 如果需要在非UI线程中开启消息队列, 需要调用Looper.prepare()方法, 在该方法的执行过程中会创建一个Looper对象, 而Looper的构造函 阅读全文
posted @ 2013-01-28 09:20 mmy--博客园 阅读(354) 评论(0) 推荐(0) 编辑
摘要: Intent是Activity与Activity之间,Activity与Service之间传递参数的介质,使用Intent和Bundle在组件之间传递数据,而这两种通常实现的是Java基本对象类型和String的传递。在实际项目中,页面之间传值,除了以上几种,经常还有传递Object对象、List类型、List<Object>类型和全局变量等等的需求。 一、传递List<String>和List<Integer>以下以传递List<String>为例,发送List<String>语法为:intent.putStringArrayLis 阅读全文
posted @ 2013-01-24 14:27 mmy--博客园 阅读(26177) 评论(1) 推荐(1) 编辑
摘要: android提供了一种新的类型:Parcel。本类被用作封装数据的容器,封装后的数据可以通过Intent或IPC传递。 除了基本类型以外,只有实现了Parcelable接口的类才能被放入Parcel中。Android平台对可通过进程通信(IPC)机制进行传递的数据定义进行约定,这些数据类必须实现Parcelable接口,且必须包含一个类型为Parcelable.Creator且名为CREATOR的公共静态成员。只有实现Parcelable接口的类才能以意向的扩展数据进行传递。实现于Parcelable接口的CREATOR成员的createFromParcel方法用于告诉平台如何从包裹里创建该 阅读全文
posted @ 2013-01-23 10:27 mmy--博客园 阅读(2973) 评论(0) 推荐(0) 编辑
摘要: SQLite是轻量级的、嵌入式的、关系型数据库,目前已经在iPhone、Android等手机系统中使用,SQLite可移植性好,很容易使用,很小,高效而且可靠。SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。SQLite数据库对SQL规范的支持很全面,它支持大多数SQL标准,同时摒弃了一些复杂的功能,添加了一些自身的特性,下图是SQLite所支持的SQL语句类型:下图是SQLite所定义的数据类型:SQLite也支持SQL标准类型,VARCHAR、CHAR、BIGINT等。创建数据库Android 不自动提供数据库。在 Android 应用程序中使用 SQL 阅读全文
posted @ 2013-01-22 16:21 mmy--博客园 阅读(18307) 评论(0) 推荐(0) 编辑
摘要: 提示框控件在程序中很常见,常用来提示用户,比如用户的输入有错误,或者是用户想要查询的内容不存在等。提示框的创建非常容易,如下:AlertDialog.Builder myDialog = new AlertDialog.Builder(this);构造方法中的参数为上下文环境,一般为当前的Activity。可以为提示框设置标题(Title)、主题显示内容(Message)、图标(Icon)等,Android提供了很多的方法供用户选择,如:myDialog .setTitle("关闭窗口");//设置标题myDialog.setMessage("您确定要关闭当前窗口 阅读全文
posted @ 2013-01-22 11:30 mmy--博客园 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 在Android中,对图片的处理需要使用到Matrix类,Matrix是一个3 x 3的矩阵,他对图片的处理分为四个基本类型:1、Translate————平移变换2、Scale————缩放变换3、Rotate————旋转变换4、Skew————错切变换在Android的API里对于每一种变换都提供了三种操作方式:set(用于设置Matrix中的值)、post(后乘,根据矩阵的原理,相当于左乘)、pre(先乘,相当于矩阵中的右乘)。默认时,这四种变换都是围绕(0,0)点变换的,当然可以自定义围绕的中心点,通常围绕中心点。首先说说平移,在对图片处理的过程中,最常用的就是对图片进行平移操作,该方法 阅读全文
posted @ 2013-01-22 11:01 mmy--博客园 阅读(34708) 评论(0) 推荐(5) 编辑
摘要: 一般在写Android程序时,通常会将图片资源放在/res/drawable/文件夹下,读取时,通过R.drawable.imageId即可读取图片内容,但用户在使用时,一般会想要读取存放在存储卡上的资源,这时候上面的方法将不起作用,这时候,就需要使用Bitmap和BitmapFactory对象,来加载手机磁盘上的资源了。首先在布局文件里放一个ImageView,用户放置图片,图片存放的路径为/data/data/demo.jpg,在程序中首先获取ImageView,代码如下:ImageView myImage = (ImageView)findViewById(R.id.imageView1 阅读全文
posted @ 2013-01-22 09:46 mmy--博客园 阅读(9469) 评论(0) 推荐(0) 编辑