随笔分类 -  android

SurfaceView 绘图覆盖刷新及脏矩形刷新方法
摘要:SurfaceView在Android中用作游戏开发是最适宜的,本文就将演示游戏开发中常用的两种绘图刷新策略在SurfaceView中的实现方法。首先我们来看一下本例需要用到的两个素材图片:bj.jpg就是一个渐变图,用作背景。question.png是一个半透明的图像,我们希望将它放在上面,围绕其圆心不断旋转。实现代码如下:package SkyD.SurfaceViewTest; import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.g 阅读全文

posted @ 2012-01-01 23:01 ①块腹肌 阅读(2237) 评论(0) 推荐(0) 编辑

Android SurfaceView 的应用
摘要:SurfaceView 由于可以直接从内存或者DMA等硬件接口取得图像数据,因此是个非常重要的绘图容器,网上介绍 SurfaceView的用法有很多,写法也层出不同,例如继承SurfaceView类,或者继承SurfaceHolder.Callback类等,这个可以根据功能实际需要自己选择,我这里就直接在普通的用户界面调用SurfaceHolder的lockCanvas和 unlockCanvasAndPost。对比下面的第二、三两图,三图用.lockCanvas(null),而二图用.lockCanvas(new Rect(oldX, 0, oldX + length, getWindowM 阅读全文

posted @ 2012-01-01 22:50 ①块腹肌 阅读(1057) 评论(0) 推荐(0) 编辑

解密回声消除技术--转
摘要:一、前言因为工作的关系,笔者从2004年开始接触回声消除(Echo Cancellation)技术,而后一直在某大型通讯企业从事与回声消除技术相关的工作,对回声消除这个看似神秘、高端和难以理解的技术领域可谓知之甚详。要了解回声消除技术的来龙去脉,不得不提及作为现代通讯技术的理论基础——数字信号处理理论。首先,数字信号处理理论里面有一门重要的分支,叫做自适应信号处理。而在经典的教材里面,回声消除问题从来都是作为一个经典的自适应信号处理案例来讨论的。既然回声消除在教科书上都作为一种经典的具体的应用,也就是说在理论角度是没有什么神秘和新鲜的,那么回声消除的难度在哪里?为什么提供回声消除技术(不管是芯 阅读全文

posted @ 2011-12-31 13:32 ①块腹肌 阅读(12834) 评论(0) 推荐(1) 编辑

StrictMode 使用
摘要:从Android2.3开始提供了一个新的类StrictMode,该类可以用于捕捉发生在应用程序主线程中耗时的磁盘、网络访问或函数调用,可以帮助开发者改进程序,使主线程处理UI和动画在磁盘读写和网络操作时变得更平滑,避免主线程被阻塞。推荐博客:http://www.cnblogs.com/zelos/archive/2011/02/27/1966403.htmlANR窗口产生的原因是多种多样的。程序的主线程因为IO读写或网络阻塞而导致被阻塞了,外部存储设备被独占了或系统负荷(load)过高(即不是自己编写的程序的问题,可能是系统或者其他第三方程序导致的问题),都有可能导致ANR窗口的出现。 从A 阅读全文

posted @ 2011-12-21 16:40 ①块腹肌 阅读(6764) 评论(0) 推荐(1) 编辑

Android Google map使用
摘要:1、使用Android Google Map Api之前必须检测系统中是否安装了Google map 应用,检测方法如下:protected boolean checkGoogleMap(){lean isInstallGMap = false; List<PackageInfo>packs = getPackageManager().getInstalledPackages(0);for (int i = 0; i < packs.size(); i++) {PackageInfo p = packs.get(i);if (p.versionName == null) { 阅读全文

posted @ 2011-12-05 22:17 ①块腹肌 阅读(1240) 评论(0) 推荐(0) 编辑

Android中Dialog
摘要:在Android中,Dialog是一个非常重要的UI, 它可以方便的给用户提示,用最简洁的方式向用户展示信息, 以下的图片是Dialog的一个整体架构,通过它,可以总体对Dialog有一个很清晰的认识.从这张图中可以看到,Dialog为父类, 其下有最重要的, 我们最常用的AlertDilog, 而AlertDialog的子类,则是由DatPicker, ProgressDialog,TimePick来组成.这几个子类都是我们在程序开发中最常用的,因此要重点理解, 我们可以试着想像一下,如下几个问题的答案<1> 怎么产生一个Dialog?<2> Dialog与Activ 阅读全文

posted @ 2011-06-17 13:37 ①块腹肌 阅读(4619) 评论(0) 推荐(0) 编辑

android 定时器的实现
摘要:在Android上常用的定时器有两种,一种是Java.util.Timer,一种就是系统的AlarmService了。实验1:使用Java.util.Timer。在onStart()创创建Timer,每5秒更新一次计数器,并启动。Java代码mTimer = new Timer(); mTimer.schedule(new TimerTask() { @Override public void run() { ++mCount; mHandler.sendEmptyMessage(0); } }, 5*1000, 5*1000); 当连接USB线进行调试时,会发现一切工作正常,每5秒更新一次界 阅读全文

posted @ 2011-06-14 13:37 ①块腹肌 阅读(36306) 评论(0) 推荐(0) 编辑

建立属于你自己的Toast
摘要:Toast用于向用户显示一些帮助/提示。下面我做了5中效果,来说明Toast的强大,定义一个属于你自己的Toast。1.默认效果代码Toast.makeText(getApplicationContext(), "默认Toast样式",Toast.LENGTH_SHORT).show();2.自定义显示位置效果代码toast = Toast.makeText(getApplicationContext(),"自定义位置Toast", Toast.LENGTH_LONG);toast.setGravity(Gravity.CENTER, 0, 0);toa 阅读全文

posted @ 2011-03-18 13:28 ①块腹肌 阅读(667) 评论(0) 推荐(0) 编辑

捕获javascript中的alert事件
摘要:来源google开源项目http://code.google.com/p/apps-for-android/source/browse/trunk/Samples/WebViewDemo/我对其进行了修改,并加了简单的注释,这个例子的不仅是对js的操作,它还对android浏览器做了简单的介绍,这些我会在注释中一一讲解。Javascript弹出框有如下三种:Java代码alert();window.confirm("Areyousrue?");window.prompt("Pleaseinputsomeword";,"thisistext&qu 阅读全文

posted @ 2011-03-17 21:56 ①块腹肌 阅读(11429) 评论(0) 推荐(0) 编辑

异步音乐播放
摘要:在Android游戏开发中我们必须考虑背景音乐播放问题,在Android平台中提供了MediaPlayer类可以播放声音,但是游戏除了播放音乐外还需要考虑画面的流畅性,以及多种音效同时播放,所以必须用到Android多线程机制和异步音效播放。Android SDK从1.0开始就提供了AsyncPlayer类,这里我们为了根据我们自己的需要可以派生或修改出更灵活的播放类。import android.content.Context;import android.net.Uri;import android.os.PowerManager;import android.os.SystemClock 阅读全文

posted @ 2011-03-17 14:47 ①块腹肌 阅读(1161) 评论(0) 推荐(0) 编辑

在Android上远程调试JavaScript
摘要:当开发人员在调试Android移动设备上调试网页时,经常遇到很多障碍.虽然Android开发指南中提供了解决方案,但这个方案非常复杂和麻烦.因此,许多Web开发人员还是经常在Firefox Debug或者Webkit’s Web Inspector上调试,因为这些工具都是功能强大,使用方便.然而,开发人员常常发现,当使用这些工具看到的效果跟最终移动设备上看到的很多时候都相差甚远.我们决定建立自己的解决方案,由Adndroid团队提出的标准解决方案中建立一个更容易使用的工具.我们称之为RemoteJS,这是一个可以让你的程序在Android设备或者模拟器中运行,而在本地调试你的JavaScrip 阅读全文

posted @ 2011-03-16 14:48 ①块腹肌 阅读(4516) 评论(1) 推荐(0) 编辑

增加service的优先级
摘要:提高 Service 优先级 Android 系统对于内存管理有自己的一套方法,为了保障系统有序稳定的运信,系统内部会自动分配,控制程序的内存使用。当系统觉得当前的资源非常有限的时候,为了保 证一些优先级高的程序能运行,就会杀掉一些他认为不重要的程序或者服务来释放内存。这样就能保证真正对用户有用的程序仍然再运行。如果你的 Service 碰上了这种情况,多半会先被杀掉。但如果你增加 Service 的优先级就能让他多留一会,我们可以用 setForeground(true) 来设置 Service 的优先级。 为什么是 foreground ? 默认启动的 Service 是被标记为 back 阅读全文

posted @ 2011-01-11 03:11 ①块腹肌 阅读(3545) 评论(0) 推荐(1) 编辑

Android中的Button自定义点击效果
摘要:方法一1.放在drawable下的selector.xml文件?xml version="1.0" encoding="utf-8"?selector xmlns:android="http://schemas.android.com/apk/res/android"item android:state_pressed="true" android:drawable="@drawable/temp1" /item android:state_pressed="false" android:state_focused="false"android:drawable="@drawab 阅读全文

posted @ 2010-12-10 16:53 ①块腹肌 阅读(33322) 评论(0) 推荐(1) 编辑

TextView属性详解
摘要:android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web /email/phone/map/all)android:autoText如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。android:bufferType指定getText()方式取得的文本类别。选项editable 类... 阅读全文

posted @ 2010-12-02 16:08 ①块腹肌 阅读(9283) 评论(0) 推荐(0) 编辑

每位Android开发人员都应铭记的10句编程谚语
摘要:所谓谚语,就是用言简意赅、通俗易懂的方式传达人生箴言和普遍真理的话,它们能很好地帮助你处理生活和工作上的事情。也正因如此,我才整理了10句编程谚语,每位开发人员都应该铭记他们,武装自己。1. 无风不起浪 别紧张,这也许只是一场消防演习代码设计是否糟糕,从某些地方就可以看出来。比如:a. 超大类或超大函数b. 大片被注释的代码c. 逻辑重复d. If/else嵌套过深程序员们通常称它们作代码异味(C... 阅读全文

posted @ 2010-12-01 13:21 ①块腹肌 阅读(917) 评论(0) 推荐(0) 编辑

开启和关闭wifi的代码段
摘要:1、需要申请的权限android.permission.ACCESS_WIFI_STATEandroid.permission.CHANGE_WIFI_STATEandroid.permission.WAKE_LOCK2、获取WifiManagerwifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);3、开启... 阅读全文

posted @ 2010-11-26 10:07 ①块腹肌 阅读(3531) 评论(0) 推荐(0) 编辑

android布局属性详解
摘要:RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alignParentBottom 贴紧父元素的下边缘 ... 阅读全文

posted @ 2010-10-23 16:14 ①块腹肌 阅读(100433) 评论(8) 推荐(13) 编辑

Android--AsyncTask
摘要:AsyncTask能够适当地、简单地用于UI线程。这个类准许执行后台操作,让那些没有熟练操作线程的操作者在UI线程上发布结果。异步任务的定义是一个在后台线程上运行,其结果是在UI线程上发表的计算。异步任务被定义成三种一般类型:Params,Progress和Result;四步:begin,doInBackground,processProgress和end.用法:AysncTask必须被继承成子集... 阅读全文

posted @ 2010-10-15 17:58 ①块腹肌 阅读(1887) 评论(0) 推荐(1) 编辑

service的生命周期回调方法
摘要:服务的生命周期跟采用启动服务的方法有关: 当采用Context.startService()方法启动服务,与之有关的生命周期方法onCreate() onStart()  onDestroy()onCreate()该方法在服务被创建时调用,该方法只会被调用一次,无论调用多少次startService()或bindService()方法,服务也只被创建一次。onStart() 只有采用Conte... 阅读全文

posted @ 2010-10-02 23:24 ①块腹肌 阅读(3547) 评论(0) 推荐(1) 编辑

Android的隐式意图
摘要:对于隐式意图,Android是怎样寻找到这个最合适的组件呢?记的前面我们在定义活动时,指定了一个intent-filter,Intent Filter(意图过滤器)其实就是用来匹配隐式Intent的,当一个意图对象被一个意图过滤器进行匹配测试时,只有三个方面会被参考到:动作、数据(URI以及数据类型)和类别。动作测试(Action test) 一个意图对象只能指定一个动作名称,而一个过滤器可能列举... 阅读全文

posted @ 2010-10-02 01:28 ①块腹肌 阅读(2482) 评论(1) 推荐(1) 编辑

导航