Android
文章平均质量分 76
BruceZhang
计算机专业的一个小学生
展开
-
Android开发--多线程中的Handler机制/Looper的介绍
在多线程的开发中,Handler机制如同在主线程中运行一样,只是需要注意在非主线程中Handler机制的作用限制,本文将对这些内容作出解释。* 如果应用上一个例子的方法对UI界面进行操作,将抛出异常,为此,Android中引入了Handler消息 * 传递机制,来实现在新创建的线程中操作UI界面,下面将对Handler消息传递机制进行介绍 * 一. * 循环者Looper简介原创 2013-01-24 21:32:38 · 2115 阅读 · 0 评论 -
Android开发--Spinner控件的使用
我们经常会在Windows开发的过程中看到一个下拉菜单控件,在Android中也有相应的控件,它的名字叫Spinner,本文介绍Spinner的用法。首先,下面的这张截图是实现的实例:在第一行,你会看到一行说明“This is just Test!”,这个类似于标题,它的定义方法是spinner.setPrompt("This is just Test!");下面的数据是引用资原创 2013-01-24 23:42:11 · 4072 阅读 · 0 评论 -
Android开发--初识多线程/线程的创建,开启,休眠,中断
在Android开发中有一项非常重要的技术---多线程,本文针对线程的创建,开启,休眠和中断做介绍。 如同在JAVA开发中一样,在Android中,提供了两种方法创建线程,一种是通过Thread类的构造方法创建线程对象,并重写run()方法,另一种是实现Runnable接口,本实例中用到的方法是第一种,第二种方法类似。 本实例实现的是在另一个线程中播放音乐,并使用一个按钮中断原创 2013-01-24 20:45:37 · 3076 阅读 · 0 评论 -
Android开发--详解ContentProvider/Cursor的使用
ContentProvider是Android四大组件之一,所以如果是自己实现ContentProvider,需要在AndroidManifest.xml文件中进行声明,幸运的是,我们很少需要自己定义实现它,一般我们的开发只需要用到系统自己提供的ContentProvider,使用起来非常方便。首先来让我们认识ContentProvider:基本概念:1.ContentProvider原创 2013-01-24 14:26:44 · 7167 阅读 · 0 评论 -
Android开发--浅谈ExpandableListActivity
ExpandableListActivity使用使用方法(可以和ListActivity进行对比)创建一个Activity类继承ExpandableListActvity三个layout主布局 (注意这里2个id都是android内置的 不是+id)包含 注意其中android:id="@id/android:list" 还有一个android:drawSe原创 2013-01-25 14:52:16 · 1735 阅读 · 0 评论 -
Android开发--图形图像与动画(二)--Animation实现图像的 渐变、缩放、位移、旋转
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。下面就讲一下Tweene Animations。主要类:Animation 动画AlphaAnimation 渐变透明度RotateAnimation 画面旋转ScaleAnimation 渐变尺寸缩放原创 2013-01-25 23:21:46 · 4900 阅读 · 0 评论 -
Android开发--事件的处理/按键按下,弹起,触摸事件等
android中的事件类型分为按键事件和屏幕触摸事件事件是我们在于UI交互式发生的,我们点击一个按键时,可能就已经除非好几个事件,例如我们点击数字键“0”,他会涉及到按下事件,和一个弹起(松开)事件,在我们android中还可能涉及到触摸屏事件,所以在android系统中,事件是作为常用的功能之一;在android下,事件的发生是在监听器下进行,android系统可以响应按键事件和触摸原创 2013-01-25 15:31:23 · 4458 阅读 · 0 评论 -
Android开发--图形图像与动画(四)--AnimationListener简介
就像Button控件有监听器一样,动画效果也有监听器,只需要实现AnimationListener就可以实现对动画效果的监听,其中需要重载三个函数,就是下面的这几个函数:private class MyListenr implements AnimationListener{ @Override public void onAnimationEnd(Animation arg0) {原创 2013-01-26 15:30:25 · 5711 阅读 · 0 评论 -
Android开发--图形图像与动画(一)--Paint和Canvas类
* Paint类 * Paint类代表画笔,用来描述图形的颜色和风格,如线宽,颜色,透明度和填充效果等信息。 * 使用Paint类时,需要先创建该类的对象,可以通过该类的构造函数实现。通常情况的实现代码是: * Paint paint=new Paint(); * 创建完Paint对象后,可以通过该对象提供的方法对画笔的默认设置进行改变 * Canvas * C原创 2013-01-25 16:39:13 · 2658 阅读 · 0 评论 -
Android开发--图形图像与动画(三)--Animation效果的XML实现
使用XML来定义Tween Animation动画的XML文件在工程中res/anim目录,这个文件必须包含一个根元素,可以使 插值元素或者是把上面的元素都放入元素组中,默认情况下,所以的动画指令都是同时发生的,为了让他们按序列发生,需要设置一个特殊的属性startOffset。动画的指令定义了你想要发生什么样的转换,当他们发生了,应该执行多长时间,转换可以是连续的也可以使同时的。例如,原创 2013-01-26 00:23:10 · 3163 阅读 · 0 评论 -
Android开发--图形图像与动画(五)--详解LayoutAnimationController
首先需要先介绍下LayoutAnimationController: * 1.LayoutAnimationController用于为一个layout里面的控件,或者是一个ViewGroup * 里面的控件设置动画效果(即整个布局) * 2.每一个控件都有相同的动画效果 * 3.这些控件的动画效果在不同的实现显示出来 * 4.LayoutAnimationController可原创 2013-01-26 15:51:11 · 4195 阅读 · 0 评论 -
Android开发--多媒体应用开发(一)--MediaPlayer的使用介绍
MediaPlayer用于播放音频文件,它的使用非常简单,使用这个类播放音频文件有两种方法,下面就这两种方法分别进行介绍。一,使用构造函数可以使用直接new的方式:MediaPlayer mp = new MediaPlayer();也可以使用create的方式,如:MediaPlayer mp = MediaPlayer.create(this, R.raw.test);原创 2013-01-26 23:05:26 · 4027 阅读 · 0 评论 -
Android开发--蓝牙操作
首先,由于模拟器上没有蓝牙装置,所以我们需要一个含有蓝牙装置的Android系统其次,要操作设备上的蓝牙装置,需要在AndroidManifest中声明两个权限:"android.permission.BLUETOOTH_ADMIN" /> "android.permission.BLUETOOTH" /> 第一个权限称为“蓝牙管理”,是对蓝牙的可见性设置,原创 2013-01-27 15:38:47 · 3880 阅读 · 0 评论 -
Android开发--多媒体应用开发(二)--SoundPool的使用
SoundPool —— 适合短促且对反应速度比较高的情况(游戏音效或按键声等)下面介绍SoundPool的创建过程:1. 创建一个SoundPool (构造函数)public SoundPool(int maxStream, int streamType, int srcQuality) maxStream —— 同时播放的流的最大数量streamType —— 流的类型,一原创 2013-01-26 23:50:41 · 4071 阅读 · 1 评论 -
Android开发--圆角按钮和绘制直线的实现
我们通常会觉得系统给出的按钮不够美观,这时,我们可以自己定义一个按钮,已达到自己的需求,在这里实现一个圆角按钮。需要在drawable文件夹下新建一个xml文件,并以shape为根标签,利用如下的shape即可实现需求:<shape xmlns:android="http://schemas.android.com/apk/res/android" android:sha原创 2013-01-28 01:25:58 · 6456 阅读 · 3 评论 -
Android开发--RadioButton和CheckBox控件的使用
在Android的开发中可能会用到RadioButton和CheckBox这两个控件,如果你对MFC开发熟悉的话,相信对这两个控件并不陌生,它们的形状也都是一样的,RadioButton是圆形单选按钮,既然是单选按钮,就需要规划好Group的概念,即在那一组中只能选择一个选项。而CheckBox是正方形的控件,即多选按钮,没有组的概念,一个控件就是一个单独的对象,互相不干扰,下面请看实现的具体例子原创 2013-01-17 09:39:57 · 1820 阅读 · 0 评论 -
Activity和Intent,打电话,发送短信
在Android开发过程中,相信你对Intent这个东西并不陌生,它的作用非常广泛,可以用来传递广播,启动另一个Activity,甚至启动另一个应用程序,注意,有一点非常重要,就是可以在一个应用程序只用启动另一个应用程序,这里使用到的东西就是Intent。 Intent有几个非常重要的部分:原创 2013-01-16 20:44:00 · 2111 阅读 · 0 评论 -
Android中的Menu和对话框形式的Activity
写这篇文章的主要目的是介绍对话框形式的Activity,其中也涉及到一些Menu的设计问题,当触发某一事件,出现一个对话框形式的Activity之后,前一个Activity失去焦点,同时,前一个Activity回调onPause(),进入到这一状态之中。首先让我们先来看看Menu和对话框形式的Activity的截图:用户可以看到在Menu之中有三个选项,用户可以通过相应的回调函数实现想实现的功原创 2013-01-16 21:47:43 · 1504 阅读 · 0 评论 -
Android开发--AsyncTask异步任务(二)
一.什么是异步操作 异步操作是指把消耗时间的操作放在另一个线程内执行,变成两个线程独立并行执行的状态。通常涉及网络的操作大多数放在异步任务中。二.异步任务AsyncTask1.建立异步任务 public class FirstAsyncTask extends AsyncTask{ //当然,这里的泛型类型根据需要可以是任何类型。原创 2013-01-31 22:07:37 · 1664 阅读 · 0 评论 -
Android开发--Http操作介绍(一)
什么是HTTP?1.超文本传输协议是互联网上应用最为广泛的一种网络协议2.HTTP是一个客户端和服务器端请求和应答的标准,客户端是终端用户,服务器端是网站3.HTTP是客户端浏览器或其他应用程序与Web服务器之间的应用层通信协议HTTP工作原理1.客户端与服务器建立连接2.建立连接后,客户端想服务器端发送一个请求3.服务器接收到请求之后,向客户端发送响应信息原创 2013-01-31 23:45:28 · 1789 阅读 · 0 评论 -
Android开发--Json数据的解析
在执行解析数据之前,需要将一个类库应用到你的程序中,下载的地址是:http://code.google.com/p/google-gson/ 下载解压之后你需要将蓝色标记的文件放入到你的程序之中应用首先,我们需要知道什么是Json数据:JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于原创 2013-01-31 13:44:45 · 4331 阅读 · 2 评论 -
Android开发--Http操作介绍(二)
通常与服务器建立连接有两种方法,Get和Post方法,下面就对这两个方法进行介绍。无论是使用HttpGet,还是使用HttpPost,都必须通过如下3步来访问HTTP资源。1.创建HttpGet或HttpPost对象,将要请求的URL通过构造方法传入HttpGet或HttpPost对象。2.使用DefaultHttpClient类的execute方法发送HT原创 2013-02-01 01:17:35 · 3923 阅读 · 0 评论 -
Android开发中的控件--ProgressBar和ListView
ProgressBar即进度条,相信对于用户来说并不陌生,当用户等待某一动作的执行时就会出现这个控件提醒用户执行的进度,一种是水平方向的,另一种是圆形的。 ListView即列表控件,一般Activity继承ListActivity就可以了,并在其中添加相应的适配器即可。下面是实现的代码:public class ProgressBar_ListView extends Acti原创 2013-01-17 10:38:30 · 1343 阅读 · 0 评论 -
Android开发中的Handler和多线程
在Android开发中我们常常用到Handler这个类去处理消息队列中的消息,以下这个例子实现的是利用Handler传递一个消息给线程,线程运行run()方法去更新进度条的进度,以下是源代码:public class MainActivity extends Activity { private Button button; private Button button2; private原创 2013-01-17 14:57:01 · 1311 阅读 · 0 评论 -
Android开发--AsyncTask异步任务(一)
所谓异步任务即异步执行,把一个耗时的任务放入另一个线程中去执行,由AsyncTask类管理。下面给出一个测试程序,测试异步任务的执行,如果不使用异步执行会怎么样,利用异步机制又会怎么样。本实例包含三个类:1.模拟一个耗时任务的类,该类使得线程休眠5000毫秒,代码如下:public class NetOperate { public void operator(){ try原创 2013-01-31 19:24:50 · 1359 阅读 · 0 评论 -
Android开发--Matrix(一)--实现图片的动态放大缩小
Matrix ,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放、平移、旋转等操作。 首先介绍一下矩阵运算。加法和减法就不用说了,太简单了,对应位相加就好。图像处理,主要用到的是乘法 。下面是一个乘法的公式: 在 Android 里面, Matrix 由 9 个 float 值构成,是一个 3*3 的矩阵。如下图。原创 2013-02-02 23:04:53 · 2935 阅读 · 0 评论 -
Android开发--Matrix(二)--实现图片的旋转
Matrix功能很是强大,利用这个类提供的一系列方法,我们可以实现图片的旋转。 下面以一个例子说明实现方法。首先,我们看下实现的截图:下面给出具体的实现代码:1.xml布局文件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:backg原创 2013-02-02 23:33:09 · 2050 阅读 · 0 评论 -
Android开发--Wifi的操作
Android应用程序测试Wifi非常简单,只需要调用系统的Wifi服务即可对Wifi进行管理,但是由于模拟器中不能使用Wifi的功能,所以测试的操作需要在手机上运行,下面是实例代码:public class WifiActivity extends Activity { private Button button1; private Button button2; private Bu原创 2013-01-18 14:11:05 · 1277 阅读 · 0 评论 -
Android开发--Notification和PendingIntent
手机上方的状态栏用于显示通知消息,实现的方法很简单,只需要记住五个步骤即可(步骤写在源代码中的注释中)。pendingIntent意思是延期执行的Intent,一般用于Notification中,下面这个例子即实现这两个功能:public class Notification_Activity extends Activity { private Button button; @Over原创 2013-01-18 21:00:41 · 1450 阅读 · 0 评论 -
android 数据传递详解(Serialization、Parcelable、Parcel、Intent、Bundle)
第一、四大组件间数据传递方式:启动四大组件通过Intent对象来实现,Intent的功能包括启动四大组件以及相关信息+传递数据。其中传递数据Intent提供了putExtra和对应的getExtra方法来实现:putExtra和getExtra 其实是和Bundle put和get方法一一对应的,在Intent类中有一个Bundle的mExtras成员变量所有的putExtra和g转载 2013-01-18 22:09:38 · 1704 阅读 · 0 评论 -
Android--强大的Toast实现多种效果
我们常常会使用Toast作为提醒的一种方式,可是,Toast不仅能实现最普通的提醒,还能实现很多种自己定制的效果。1.默认效果代码Toast.makeText(getApplicationContext(), "默认Toast样式", Toast.LENGTH_SHORT).show(); 2.自定义显示位置效果代码原创 2013-02-03 14:07:28 · 1548 阅读 · 0 评论 -
Android开发--BroadcastReceiver介绍1
从名字中大概就知道了意思,BroadcastReceiver就是广播接收器的意思,它运行在后台,始终处于监听的状态,当有系统消息或用户自定义的消息到达时,回调onReceiver()函数,着这个例子中,我只是在这个回调函数中打印出一句话,复杂的BroadcastReceiver操作下文会介绍。 下面的截图就是程序运行的实例: 下面是这个例子所用到的源代码:原创 2013-01-18 11:06:43 · 1024 阅读 · 0 评论 -
Android开发--BroadcastReceiver2
上一篇文章介绍了在AndroidManifest.xml文件中定义过滤器的方法,这篇文章讲解使用java代码定义这些过滤器。 首先,介绍在xml文件中定义过滤器的弊端。如果开发者在xml文件中定义的不是系统级事件,正如上一篇文章中的那样,那么不管用户的应用程序是否关闭,Receiver程序始终处于运行(监听)状态,直到用户手机关闭。这样,就会对内存和手机电量造成极大的浪费,所以当用户不原创 2013-01-18 13:28:46 · 1215 阅读 · 0 评论 -
Android开发--Service开启,关闭,绑定,解除
Android应用程序中有一项非常重要的技术--Service,它没有运行界面,运行在后台,但是有一点非常重要,Service并不是一个单独的进程,同时也不是一个线程,用来处理耗时的动作。 Service有两种使用方法,一种是start和stop,另一种是绑定服务。 当使用的是第一种方法时,直到用户停止这个服务,Service才会停止,即使是用户关闭这个Activity(应用程原创 2013-01-18 15:32:46 · 4878 阅读 · 0 评论 -
Android开发--XML文件解析
开发者一般会在XML文件中定义控件,其中肯定包含控件的一些属性,下面就对这些属性做一些简单的介绍:1)android:id---这个属性是为控件提供一个标识或者是对一个控件采用引用2)android:layout_width/layout_height---这个属性标识的是这个控件的大小(宽度和高度),可以使用的单位一般为wrap_content,fill_parent,同时也可以使用px原创 2013-01-18 16:15:58 · 1015 阅读 · 0 评论 -
android开发--ListView中的getView原理
其实这里的复用技术在列表中是十分常见的,iphone中的tableView也有相关的技术,cell的复用工作原理:ListView 针对List中每个item,要求 adapter “给我一个视图” (getView)。一个新的视图被返回并显示如果我们有上亿个项目要显示怎么办?为每个项目创建一个新视图?NO!这不可能!实际上Android为你缓存了视图。An转载 2013-01-18 16:44:35 · 1917 阅读 · 0 评论 -
android开发--详解ListView,动态添加,删除Adapter中的数据项
ListView是Android开发中最常用到的控件之一,所以学习ListView显得非常重要,在本文中,作者继承了BaseAdapter实现了自己的Adapter,在其中实现相应的方法,包括添加,删除,清空list。 除此之外,作者实现了listview的两个方法,即当用户选择某一项和用户点击某一项发生的相关事件,下图即为此程序的截图:一下是具体的实现源代码:p原创 2013-01-18 19:54:45 · 14547 阅读 · 4 评论 -
Android开发--实现对话框(AlertDialog)
在我们平时见到的应用程序中经常会看到弹出一个对话框用于通知用户下一步的动作,在本实例中实现了一个简单的对话框(在上一实例的基础上),截图如下:具体的实现代码如下: AlertDialog.Builder aleBuilder=new AlertDialog.Builder(Notification_Activity.this); aleBuilder.setIcon(原创 2013-01-18 21:21:27 · 1454 阅读 · 0 评论 -
Android开发--SharedPreferences初步介绍
存储数据在Android开发中是一项非常重要的功能,下面介绍的这种技术是利用XML文件存储键值对。 SharedPreferences的使用主要有四步: 1)获得SharedPreferences对象 2)获得SharedPrefercences.Editor对象 3)使用putXXX方法保存数据原创 2013-01-19 11:19:44 · 1497 阅读 · 0 评论 -
Android程序为什么没有退出设计?
Google Android平台在设计程序声明周期上比较特殊,可能是考虑到第二次加载时保证速度的原因而没有强制加入内存释放问题,所有的资源回收由Dalvik GC自动完成,所以在设计开发时一定要注意Activity和Service类的生命周期问题,显示在最上层的窗口将有最高的优先级,当Android操作系统内存不够用时自动将会根据历史栈按优先级强制杀掉进程。翻译 2013-02-05 00:33:02 · 2542 阅读 · 0 评论