随笔分类 -  Android

摘要:下面是LoginActivity类private static final String PREFS_NAME = "MyUserInfo";@Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.login); findViews(); ... 阅读全文
posted @ 2012-08-02 23:26 water0504 阅读(1085) 评论(0) 推荐(0)
摘要:Looper用于封装了android线程中的消息循环,默认情况下一个线程是不存在消息循环(message loop)的,需要调用Looper.prepare()来给线程创建一个消息循环,调用Looper.loop()来使消息循环起作用,从消息队列里取消息,处理消息。注:写在Looper.loop()之后的代码不会被立即执行,当调用后mHandler.getLooper().quit()后,loop才会中止,其后的代码才能得以运行。Looper对象通过MessageQueue来存放消息和事件。一个线程只能有一个Looper,对应一个MessageQueue。以下是Android API中的一个典 阅读全文
posted @ 2012-08-02 23:25 water0504 阅读(310) 评论(0) 推荐(0)
摘要:不知道您有没有这样的体验,我们做了个程序,不想让用户一直点击返回键,不知不觉中退了出来。希望给用户一个更为有好的提示,留下那些其实并没有真的要退出的用户。好吧,今天我就来说说如何实现这一功能。首先明确一点,用户的一直点击的返回键,之后就会退出到桌面。那么,如何提示呢?很简单,在用户一顿返回键回到程序入口处(即程序的第一个 Activity)给用户一个提示,您再按可就退出程序啦?那么如何在程序入口处增加这个提示呢?明显,我们要侦听用户的点击返回键这一事件。怎样才能做 到侦听这一事件呢?代码如下:view plain@OverridepublicbooleanonKeyDown(intkeyCod 阅读全文
posted @ 2012-08-02 23:24 water0504 阅读(230) 评论(0) 推荐(0)
摘要:android ListView添加事件并获取选中项的值,ListView是一个经常用到的控件,ListView里面的每个子项Item可以使一个字符串,也可以是一个组合控件。main.xml代码如下:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android: 阅读全文
posted @ 2012-08-02 23:23 water0504 阅读(484) 评论(0) 推荐(0)
摘要:在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。抽空把对ListView的使用做了整理,并写了个小例子,如下图。列表的显示需要三个元素:1.ListVeiw 用来展示列表的View。2.适配器用来把数据映射到ListView上的中介。3.数据具体的将被映射的字符串,图片,或者基本组件。根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter其中以ArrayAdapter最为简单,只能展示一行字。SimpleAdapter有最好的扩充性,可以自定义出各种效 阅读全文
posted @ 2012-08-02 23:17 water0504 阅读(222) 评论(0) 推荐(0)
摘要:1.引言 所谓的消息推送就是从服务器端向移动终端发送连接,传输一定的信息。比如一些新闻客户端,每隔一段时间收到一条或者多条通知,这就是从服务器端传来的推送消息;还比如常用的一些IM软件如微信、GTalk等,都具有服务器推送功能。 推送方法如下: 1)通过SMS进行服务器端和客户端的交流通信。 在Android平台上,你可以通过拦截SMS消息并且解析消息内容来了解服务器的意图,可以实现完全的实时操作。但是问题是这个方案的成本相对比较高,且依赖于运营商。 2)循环主动定时获取 这种方法需要客户端来做一个定时或者周期性的访问服务器端接口,以获得最新的消息。轮询的频率太慢可能导致某些消息的... 阅读全文
posted @ 2012-08-02 23:05 water0504 阅读(166) 评论(0) 推荐(0)
摘要:昨天升级了SDK,ADT,发现原来可以在EditText里面使用电脑的键盘输入的功能,现在无法输入了,连模拟器的无力键盘也不行,只能使用虚拟键盘,非常麻烦,还有在baidu里有如下方法,只是在Create AVD的时候在Hardware这一项中添加keyboard supportkeyboard lid support: 模拟器物理键盘,设为yes,表示模拟器物理键盘可用keyboard support : 电脑键盘,设为yes,电脑键盘可用 阅读全文
posted @ 2012-08-02 23:03 water0504 阅读(321) 评论(0) 推荐(0)
摘要:刚才更新SDK, ADT,可是新建项目的时候却出现问题了,操作一路默认,出现了下面的提示:Thistemplate depends on the Android Support library, which is either not installed, or thetemplate depends on a more recent version than the one you hava installed.http://developer.android.com/tools/extras/support-library.htmlRequired version: 8Installed 阅读全文
posted @ 2012-08-02 22:59 water0504 阅读(1022) 评论(1) 推荐(0)
摘要:由于项目需要做一个基于XMPP协议的Android通讯软件。故开始研究XMPPXMPP协议采用的是客户端-服务器架构,所有从一个客户端发到另一个客户端的消息和数据都必须经过XMPP服务器转发,而且支持服务器间DNS的路由,也就是说可以构建服务器集群,使不同的服务器下的客户端也可以通信,XMPP的前身是一个开源组织制定的网络通信协议——Jabber,XMPP的核心是在网络上分片段发送XML流的协议,这个协议是XMPP的即时通讯指令的传递手段。 为了防止服务器间发送的数据被篡改或偷听,XMPP服务器通信引入了TLS机制,使用TLS机制能实现数据的加密,从而保证了在数据传输过程种数据的安全。 一个X 阅读全文
posted @ 2012-08-02 22:55 water0504 阅读(679) 评论(0) 推荐(0)
摘要:Android可以通过MediaRecorder和AudioRecord这两个工具来实现录音,MediaRecorder直接把麦克风的数据存到文件,并且能够直接进行编码(如AMR,MP3等),而AudioRecord则是读取麦克风的音频流。本文使用AudioRecord读取音频流,使用AudioTrack播放音频流,通过“边读边播放”以及增大音量的方式来实现一个简单的助听器程序。PS:由于目前的Android模拟器还不支持AudioRecord,因此本程序需要编译之后放到真机运行。先贴出本文程序运行截图:PS:程序音量调节只是程序内部调节音量而已,要调到最大音量还需要手动设置系统音量。使用Au 阅读全文
posted @ 2012-07-31 23:11 water0504 阅读(446) 评论(0) 推荐(0)
摘要:AudioRecord类相对于MediaRecorder来说,更加接近底层,为我们封装的方法也更少。然而实现一个AudioRecord的音频录制程序也很简单。本实例代码如下:可惜,本实例测试时有个问题,在录制的时候,会出现buffer over。缓存泄露,待解决。package demo.camera; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; impo... 阅读全文
posted @ 2012-07-31 23:09 water0504 阅读(344) 评论(0) 推荐(0)
摘要:在Android中录音可以用MediaRecord录音,操作比较简单。但是不够专业,就是不能对音频进行处理。如果要进行音频的实时的处理或者音频的一些封装就可以用AudioRecord来进行录音了。这里给出一段代码。实现了AudioRecord的录音和WAV格式音频的封装。用AudioTrack和AudioTrack类可以进行边录边播,可以参考:http://blog.sina.com.cn/s/blog_6309e1ed0100j1rw.html我们这里的代码没有播放。但是有封装和详解,如下:package com.ppmeet; import java.io.File; import... 阅读全文
posted @ 2012-07-31 23:06 water0504 阅读(477) 评论(0) 推荐(0)
摘要:在android中采集音频的api是android.media.AudioRecord类其中构造器的几个参数就是标准的声音采集参数以下是参数的含义解释public AudioRecord (int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes)Since: API Level 3Class constructor.ParametersaudioSourcethe recording source. See MediaRecorder.AudioSource f 阅读全文
posted @ 2012-07-31 23:01 water0504 阅读(395) 评论(0) 推荐(0)
摘要:Socket是TCP/IP协议上的一种通信,在通信的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路。一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。Client A 发信息给 Client B , A的信息首先发送信息到服务器Server ,Server接受到信息后再把A的信息广播发送给所有的Clients首先我们要在服务器建立一个ServerSocket ,ServerSocket对象用于监听来自客户端的Socket连接,如果没有连接,它将一直处于等待状态。Socket accept():如果接收到一个客户端Socket的连接请求,该方法将返回一个与客户端S 阅读全文
posted @ 2012-07-30 23:16 water0504 阅读(253) 评论(0) 推荐(0)
摘要:android中使用的是java的socket模型,如果你学过java网络编程,那么你对它一定不陌生。今天我主要使用TCP协议实现通信的。小知识点:UDP协议和TCP协议的不同。UDP是把数据都打成数据包,数据包上自带通信的地址,但是数据包发出去之后UDP协议不能保证你能否收到。而TCP协议要求接收方收到数据后给个回应,当发送重要数据的时候就可以选择TCP协议。UDP发送数据的量是有限的,而TCP是没有限制的,当然这导致UDP很快,TCP相对慢点。根据不同的情况,有不同的选择。一,通信的基本结构:客户端和服务器端 客户端这边是Socket类:客户端指定给某个服务器端上的某个端口发送消息。比如向 阅读全文
posted @ 2012-07-30 23:03 water0504 阅读(556) 评论(0) 推荐(0)
摘要:Socket通常也称做”套接字“,用于描述IP地址和端口,废话不多说,它就是网络通信过程中端点的抽象表示。值得一提的是,Java在包java.net中提供了两个类Socket和ServerSocket,分别用来表示双向连接的客户端和服务端。这是两个封装得非常好的类,使用起来很方便!下面将首先创建一个SocketServer的类作为服务端如下,该服务端实现了多线程机制,可以在特定端口处监听多个客户请求,一旦有客户请求,Server总是会创建一个服务纯种来服务新来的客户,而自己继续监听。程序中accept()是一个阻塞函数,所谓阻塞性方法就是说该方法被调用后将等待客户的请求,直到有一个客户启动并请 阅读全文
posted @ 2012-07-30 22:56 water0504 阅读(323) 评论(0) 推荐(0)
摘要:1.背景自适应且不失真问题的存在制作自适应背景图片是UI开发的一个广泛问题,也是界面设计师渴望解决的问题,我相信我们彼此都深有体会。比如,列表的背景图一定,但是列表的高度随着列表数据项会发生变化;标题栏的背景,无论横屏还是竖屏,高分辨率还是低分辨率,都能自动填充满,而且不失真等等背景问题。根据以往的经验,我们一般采用先切图后拼凑的做法,这种做法本来我想在这里和大家介绍一下,其实有的时候还是很有用的,但是说起来会比较麻烦,就不说这个非重点了,略去,如果大家真的要介绍,在回复中说明,我再考虑一下。Android针对这种情况,专门制作了一种.9.PNG格式来解决这个问题。2.9.PNG格式。我不想在 阅读全文
posted @ 2012-07-29 20:07 water0504 阅读(307) 评论(0) 推荐(0)
摘要:一、什么是9.png: 可能做过任务栏美化的同学都会知道,我靠,framework-res.apk\res\drawable-hdpi 目录下有非常非常多的XXXXXX.9.png图片。 千万不要以为这个9只是png格式图片的命名区分,其实他是一种特殊的格式,在png图片的基础上动了些手脚,而且这种手脚你会 看不见摸不着(详情见下面具体内容)。 9.png格式的图片是安卓平台上新创的一种被拉伸却不失真的玩意(挺高级的吧),也许有 的同学在做美化的时候很喜欢一个图片素材,重命名替换了drawable-hdpi下的素材,但是运行系统后发现,怎么被拉伸得不像样子 了,哈哈,这就是9.png图片不能轻 阅读全文
posted @ 2012-07-29 19:51 water0504 阅读(199) 评论(0) 推荐(0)
摘要:前言最近公司的Android项目需要用到摄像头做条码或二维码的扫描,Google一下,发现一个以Apache License 2.0 开源的 ZXing项目。Zxing项目里的Android实现太过复杂多余东西太多,得对其进行简化。前提条件下载源代码:点击这里编译核心库:Zxing的主页上有介绍具体步骤,大家也可以参照这篇博文:android 条码识别软件开发全解析(续2详解绝杀!)导入项目打开Eclipse 导入 源码中的 Android 项目,然后右击项目 选择“Build path”——》"Add External Archives" 把核心库 core.jar文件加 阅读全文
posted @ 2012-07-29 19:46 water0504 阅读(455) 评论(0) 推荐(0)
摘要:一、main.xml布局文件<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> 阅读全文
posted @ 2012-07-24 19:40 water0504 阅读(489) 评论(0) 推荐(0)