- 博客(72)
- 资源 (43)
- 收藏
- 关注
原创 如何开起系统自带的网络设置
Intent intent =new Intent("android.settings.WIRELESS_SETTINGS"); startActivity(intent);
2012-06-26 14:59:27 451
原创 如何根据EditText的改变监听TextView中文本的改变
public class myActivity extends Activity{ private EditText content;@Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedIns
2012-06-26 14:56:49 929
原创 如何获得系统键盘
private InputMethodManager inputMethodManager;if (inputMethodManager == null) { inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); }
2012-06-26 14:46:03 390
原创 如何关闭系统键盘
//点击按钮时,隐藏系统键盘 inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
2012-06-26 14:43:54 616
原创 Android游戏开发:游戏框架的搭建(1)
通常情况下,游戏开发的基本框架中,一般包括以下模块: 窗口管理(Window management):该模块负责在Android平台上创建、运行、暂停、恢复游戏界面等功能。 输入模块(Input):该模块和视窗管理模块是密切相关的,用来监测追踪用户的输入(比如触摸事件、按键事件、加速计事件等)。 文件输入输出(File I/O):此模块用来读取assets文件下图片、音频等资源。
2012-06-26 09:23:34 1167
原创 Android游戏开发:游戏框架的搭建(2)
4.音频模块(Audio) 音频模块编程从来都是一个复杂的话题。这里不打算用到一些高级复杂的音频处理手段,主要是播放一些背景音乐。在书写代码前,让我们了解一下音频的基础知识。 采样率:定义了每秒从连续信号中提取并组成离散信号的采样个数,采样率越高音质越好,单位用赫兹(Hz)来表示,CD一般是44.1KHz。对于每个采样系统会分配一定存储位(bit数)来表达声波的声波振幅状态,称之为采样
2012-06-26 09:22:47 464
原创 Android游戏开发:游戏框架的搭建(3)
5. 图像模块(Graphics) 最后一个模块是图像操作模块,用来绘制图像到屏幕上。不过要想高性能的绘制图像,就不得不了解一些基本的图像编程知识。让我们从绘制2D图像开始,首先要了解的一个问题是:图像究竟是如何绘制到屏幕的?答案相当复杂,我们不需要知道所有的细节。光栅、像素和帧缓冲(Framebuffers) 现在的显示器都是基于光栅的,光栅是一个两维度的格子组成,也就是像素格。
2012-06-26 09:22:03 654
原创 Android游戏开发:游戏框架的搭建(4)
6.游戏框架 所有的基础工作做完后,我们最后来探讨一下游戏框架本身。我们看下为了运行我们的游戏,还需要什么样的工作要做:游戏被分为不同的屏幕(screen),每个屏幕执行着相同的任务:判断用户输入,根据输入渲染屏幕。一些节目或许不需要任何用户输入,但会过段时间后切换到下一屏幕.(如Splash界面)屏幕需要以某种方法被管理(如我们需要跟踪当前的屏幕并且能随时切换的下一屏幕) 游戏需要
2012-06-26 09:20:48 596
原创 Android消息推送
1.引言 所谓的消息推送就是从服务器端向移动终端发送连接,传输一定的信息。比如一些新闻客户端,每隔一段时间收到一条或者多条通知,这就是从服务器端传来的推送消息;还比如常用的一些IM软件如微信、GTalk等,都具有服务器推送功能。 推送方法如下: 1)通过SMS进行服务器端和客户端的交流通信。 在Android平台上,你可以通过拦截SMS消息并且解析消息内容来了解服务器的意图
2012-06-25 09:59:56 614
原创 Android文件操作总结
Android中读取/写入文件的方法,与Java中的I/O是一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件。但是在默认状态下,文件是不能在不同的程序之间共享的,以上两个方法只支持读取该应用目录下的文件,读取非其自身目录下的文件将会抛出FileNotFoundException异常。创建的文件存放在/data/data//files目录下。
2012-06-25 09:57:57 501
原创 SQLite优化方法
1.建表优化SQLite的数据库本质文件读写操作,频繁操作打开和关闭是很耗时和浪费资源的; 优化方法事务机制:这里要注意一点:事务的开启是要锁定DB的,其他对DB的写入操作都是无法成功的。db.beginTransaction(); //手动设置开始事务try {//这里写你数据操作db.setTransactionSuccessful(); //设置事务
2012-06-25 09:56:26 642
原创 Android桌面快捷方式的实现
1)创建 /** * 为程序创建桌面快捷方式 */ private void addShortcut(){ Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); //快捷方式的名称 shortcut.p
2012-06-25 09:53:53 555
原创 Android之NDK开发
一、NDK产生的背景 Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态
2012-06-25 09:52:54 367
原创 Android中View转换为Bitmap及getDrawingCache=null的解决方法
1.前言 Android中经常会遇到把View转换为Bitmap的情形,比如,对整个屏幕视图进行截屏并生成图片;Coverflow中需要把一页一页的view转换为Bitmap、以便实现复杂的图形效果(阴影、倒影效果等);再比如一些动态的实时View为便于观察和记录数据、需要临时生成静态的Bitmap。2.实现方法 1)下面是笔者经常用的一个转换方法 public st
2012-06-25 09:51:02 796
原创 Android之setContentView和LayoutInflater
setContentView:1.常用的构造函数: 1)setContentView(int layoutResID) 2)setContentView(View view) 3)setContentView(View view, ViewGroup.LayoutParams params)2.用法1)setContentView(R.layout
2012-06-25 09:50:27 502
原创 横竖屏切换时候Activity的生命周期
1、新建一个Activity,并把各个生命周期打印出来2、运行Activity,得到如下信息onCreate-->onStart-->onResume-->3、按crtl+f12切换成横屏时onSaveInstanceState-->onPause-->onStop-->onDestroy-->onCreate-->onStart-->onResto
2012-06-25 09:49:50 401
原创 Intent的简介以及属性详解
一.Intent的介绍Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Ser
2012-06-25 09:49:09 513
原创 context理解
官方文档的解释是:Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型。同时启动应用级的操作,如启动Activity,broadcasting和接收intents。 常用的Context的子类是Activity和Service,我们可以将context理解为类似于Window下的句柄,但Window下的句
2012-06-25 09:48:16 332
原创 Android界面刷新
Android的invalidate与postInvalidate都是用来刷新界面的,用法区别在于: 1)invalidate():实例化一个Handler对象,并重写handleMessage方法调用invalidate()实现界面刷新;而在线程中通过sendMessage发送界面更新消息。 // 在onCreate()中开启线程new Thread(new GameThr
2012-06-25 09:47:43 384
转载 Android系统在新进程中启动自定义服务过程(startService)的原理分析
在编写Android应用程序时,我们一般将一些计算型的逻辑放在一个独立的进程来处理,这样主进程仍然可以流畅地响应界面事件,提高用户体验。Android系统为我们提供了一个Service类,我们可以实现一个以Service为基类的服务子类,在里面实现自己的计算型逻辑,然后在主进程通过startService函数来启动这个服务。在本文中,将详细分析主进程是如何通过startService函数来在新进程
2012-06-25 09:44:06 532
原创 Android之Activity与Service通信
一、当Acitivity和Service处于同一个Application和进程时,通过继承Binder类来实现。 当一个Activity绑定到一个Service上时,它负责维护Service实例的引用,允许你对正在运行的Service进行一些方法调用。比如你后台有一个播放背景音乐的Service,这时就可以用这种方式来进行通信。代码如下:/***************
2012-06-25 09:39:54 572
原创 Activity与Service通信
Activity与Service通信的方式有三种: 继承Binder类 这个方式只有当你的Acitivity和Service处于同一个Application和进程时,才可以用,比如你后台有一个播放背景音乐的Service,这时就可以用这种方式来进行通信。用例子来说明其使用方法: 1. 来看Service的写法: Java代码 public
2012-06-25 09:25:33 678
原创 Thread和Service应用场合的区别
Thread和Service的区别:1)Thread 是程序执行的最小单元,它是分配CPU的基本单位,可以用 Thread 来执行一些异步的操作。 如果是Local Service,那么对应的 Service 是运行在主进程的 main 线程上的。如果是Remote Service,那么对应的 Service 则是运行在独立进程的main 线程上。因此 Service不是线程!
2012-06-25 09:21:33 315
原创 Android解析XML
在Android平台上可以使用Simple API for XML(SAX) 、 Document Object Model(DOM)和Android附带的pull解析器解析XML文件。 下面是本例子要解析的XML文件:itcast.xmlxml version="1.0" encoding="UTF-8"?>persons> person id="23">
2012-06-25 09:19:44 351
原创 Android之菜单总结
在Android中,菜单被分为如下三种,选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu)。 1. 选项菜单(OptionsMenu)详解 Activity中需要覆盖的常用的方法: public boolean onCreateOptionsMenu(Menu menu):使用此方法创建OptionsMenu。该方法只会在选项
2012-06-25 09:17:31 388
原创 Android的虚拟机Dalvik介绍
Dalvik和标准Java虚拟机(JVM)之间的首要差别之一,就是Dalvik基于寄存器,而JVM基于栈。一直以来都有人在猜测,选择基于寄存器的方式是因为它对提前优化(ahead-of-time optimization)提供了更好的支持,而这对类似于移动电话这样的受限环境是颇有裨益的。 Dalvik和Java之间的另外一大区别就是运行环境——Dalvik经过优化,允许在有限的内存中同时运行
2012-06-25 09:15:58 444
原创 Android Handler的使用
如何让程序5秒钟更新一下Title.如果习惯了Java编程,在不知道Handler的用法之前的程序,代码如下所示:package com.android.tutor; import java.util.Timer; import java.util.TimerTask; import android.app.Act
2012-06-25 09:15:18 295
原创 Android SQLite学习指南
一、SQLite简介 在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型虽然只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型
2012-06-25 09:15:06 509
原创 AchartEngineActivity引擎绘制柱状图、曲线图
1.简介 AChartEngine(简称ACE)是Google的一个开源图表库(for Android)。它功能强大,支持散点图、折线图、饼图、气泡图、柱状图、短棒图、仪表图等多种图表。该项目地址位于: http://code.google.com/p/achartengine/。关于里面类的具体使用,请下载响应的文档说明(主页上有)。2.开发步骤1)在工程中新建一个文件夹比如l
2012-06-21 13:44:53 540
原创 Java反射机制
1.概念: 运行时,对任意类,都能知道这个类的所有属性和方法;对任意一对象,都能够调用它的每个方法和属性;这种动态获取、动态调用的功能称为Java语言的反射机制。2.实现 Java反射相关的API在包java.lang.reflect中Member接口该接口可以获取有关类成员(域或者方法)后者构造函数的信息。AccessibleObjec
2012-06-21 13:39:44 300
原创 Java之内存分析和String对象
Java中内存分析: 栈(Stack) :存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中)。 堆(heap):存放所有new出来的对象。 常量池(constant pool):在堆中分配出来的一块存储区域,存放储显式的String常量和基本类型常量(float、int等)。另外,可以存储
2012-06-21 13:38:44 431
原创 Java内部类总结
Java内部类其实在J2EE编程中使用较少,不过在窗口应用编程中特别常见,主要用来事件的处理。其实,做非GUI编程,内部类完全可以不用。 内部类的声明、访问控制等于外部类有所不同,要灵活使用内部类来编写程序,还是有相当难度的,Java发明了这种难懂的玩意儿,在其他语言中是没有的,但是在Java中,内部类也相当的重要,尤其做GUI开发时候,事件的响应处理全靠内部类了。 内部类所做的功
2012-06-21 13:37:30 384
原创 静态内部类和非静态内部类的区别
案例:package com.devin;public class MyMain{ private static String name = "woobo"; private String num = "X001"; // 静态内部类可以用public,protected,private修饰 static class Person
2012-06-21 13:36:21 428
原创 理解Java的GC与引用
Java 中一共有 4 种类型的引用 : StrongReference、 SoftReference、 WeakReference 以及 PhantomReference , 这 4 种类型的引用与 GC 有着密切的关系, 让我们逐一来看它们的定义和使用场景 : 1. Strong Reference StrongReference 是 Java 的默认
2012-06-21 13:35:35 336
原创 java回调函数简介
案例一 下面使用java回调函数来实现一个测试函数运行时间的工具类:如果我们要测试一个类的方法的执行时间,通常我们会这样做:public class TestObject { /** * 一个用来被测试的方法,进行了一个比较耗时的循环 */ public static void testMethod(){
2012-06-21 13:34:41 334
原创 静态方法何时使用
如果某些操作不依赖具体实例,那它就是静态的,反之如果某些操作是依赖具体实例的(例如访问一个特定会员的名称),那它就应该是实例化的。静态方法不用new对象可以直接调用 1.与类相关与对象无关 2.不需要对象的“轻”方法 3.工厂方法如果某个方法是用频率较高,或者方法本身通用性较强,无需初始化类成员变量,则可以使用静态方法,那样方便,速度也快.可以直接拿来就用的方法,就
2012-06-21 13:33:43 868
原创 Java 之工厂方法和抽象工厂模式
1. 概念 工厂方法:一抽象产品类派生出多个具体产品类;一抽象工厂类派生出多个具体工厂类;每个具体工厂类只能创建一个具体产品类的实例。 即定义一个创建对象的接口(即抽象工厂类),让其子类(具体工厂类)决定实例化哪一个类(具体产品类)。“一对一”的关系。 抽象工厂:多个抽象产品类,派生出多个具体产品类;一个抽象工厂类,派生出多个具体工厂类;每个具体工厂类可创建多个
2012-06-21 13:32:06 546
原创 Android之MVC模式
MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器。一个逻辑模型可以对于多种视图模型,比如一批统计数据你可以分别用柱状图、饼图来表示。一种视图模型也可以对于多种逻辑模型。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式,而C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新,这与《设计模式》中的观察者模式是完
2012-06-21 13:31:07 326
原创 Java之单例模式(Singleton)
1. 概念:保证一个类仅有一个实例,并提供一个访问它的全局访问点。2. UML图:3.代码:(1)懒汉模式:只有在自身需要的时候才会创建。运行时获得对象,它在整个应用的生命周期只有一部分时间在占用资源。 ?public class Singleton { privatestatic Singleton singleto
2012-06-21 13:30:22 300
原创 Android之Widget学习总结
1.Widget设计步骤 需要修改三个XML,一个class: 1)第一个xml是布局XML文件(如:main.xml),是这个widget的。一般来说如果用这个部件显示时间,那就只在这个布局XML中声明一个textview就OK了。 2)第二个xml是widget_provider.xml,主要是用于声明一个appwidget的。其中,Layout就是指定上面那个main.xm
2012-06-21 13:29:07 342
各种控件刷新
2015-03-19
httpClient和URLConnection的区别
2012-06-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人