摘要: 一、回调函数 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。详细解释: 客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名谁,所以S会约定... 阅读全文
posted @ 2012-06-19 22:15 vtianyun 阅读(22738) 评论(1) 推荐(4) 编辑
摘要: 1.如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Double, Float, Long 的方法大同小异.2.如何将整数 int 转换成字串 String ? A. 有叁种方法: 1.) String s = String.valueOf(i); 2.) String s = Integer. 阅读全文
posted @ 2012-06-19 22:04 vtianyun 阅读(1272) 评论(0) 推荐(0) 编辑
摘要: 一、带倒影的图片 就是图片在上,下面带了倒影,像在水里一样!其实原理就是绘制垂直对称图像,然后用透明度来渲染,搞定! 代码如下: 1 public Bitmap createReflectionImageWithOrigin(Bitmap bitmap) { 2 final int reflectionGap = 4; 3 int w = bitmap.getWidth(); 4 int h = bitmap.getHeight(); 5 // 建立倒影矩阵 6 matrix.preScale(1, -... 阅读全文
posted @ 2012-06-19 21:43 vtianyun 阅读(730) 评论(0) 推荐(0) 编辑
摘要: 位图资源的获取,及和其他各种方式的相互转换在之前的Android图形图像部分的总结里总结过了,下面来进一步总结下对位图的操作。一、位图的缩放 1.将位图按需要重新画一遍:drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint); 2.在原有位图的基础上,缩放原位图,创建一个新的位图:CreateBitmap(Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter); 3.借助于canvas的scale(float x, float ... 阅读全文
posted @ 2012-06-19 18:21 vtianyun 阅读(761) 评论(0) 推荐(1) 编辑
摘要: 例如:数组0,1,2,3,4,5,6,7,8,9,10,11,12,要交换1,2子串和7,8,9子串的位置,形成0,7,8,9,3,4,5,6,1,2,10,11,12由于不是链表,不能直接断链,相接,数组存在移动的问题,还要判断有没有重叠的问题,总体思路就是:1)将1~9置逆2)将1~3置逆3)将4~7置逆4)将8~9置逆跟之前的数组旋转类似,那个由于是没有间隔的,所以只要置逆3次,这里中间可能有间隔,所以最多要做4次置逆,代码很简单: 1 public static void doAgainst(int[] a, int start, int end) { 2 int... 阅读全文
posted @ 2012-05-11 13:48 vtianyun 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 昨天面试去了,讲到字符串移动,也就是交换位置,等于是循环移动。。。结果我自己把自己给绕进去了,怎么都动不好,回来总结总结,发现原因了!待移动的数组假设为a,长度为len,需要移动rotate位,编程珠玑上说的:用的时候,务必小心!书中给的是len =12,rotate=3,是整数倍的关系,直接可以循环3次实现移位,但是这是特殊情况,对于任意情况,应该考虑不是整数倍的时候怎么移动,举个例子:数组0~11,一个12个数,这个比较有代表性,可以移动4,5,8次来满足各种情况,1)对于4次,是12的的整数倍,就像书中写的那样,循环4次就可以完成,每次都刚好移完整个串,代码是这样的: 1 ... 阅读全文
posted @ 2012-05-11 13:16 vtianyun 阅读(975) 评论(0) 推荐(1) 编辑
摘要: 在Android中,我们可以通过继承Application类来实现应用程序级的全局变量,这种全局变量方法相对静态类更有保障,直到应用的所有Activity全部被destory掉之后才会被释放掉。我们可以在Activity中使用getApplication(),方法来获得Application,它是代表我们的应用程序的类,使用它可以获得当前应用的主题,资源文件中的内容等,这个类更灵活的一个特性就是可以被我们继承,来添加我们自己的全局属性。首先写一个Application子类,主要重写里面的onCreate方法,就是创建的时候,初始化变量的值。然后在整个应用中的各个文件中就可以对该变量进行操作了。 阅读全文
posted @ 2012-04-19 21:05 vtianyun 阅读(884) 评论(0) 推荐(0) 编辑
摘要: 正常情况下,我们开发的应用程序都会上占满整个屏幕,那么怎么样才能开发出自定义窗口大小的的程序呢?如下图所示: (转自:http://www.ideasandroid.com/archives/339)第一步,创建一个背景配置文件float_box.xml,放到res/drawable下:<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <corne 阅读全文
posted @ 2012-04-19 14:05 vtianyun 阅读(4048) 评论(0) 推荐(1) 编辑
摘要: socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。对 阅读全文
posted @ 2012-04-17 10:21 vtianyun 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 最近又看了一遍Thinking in java 感觉这本书是要永远留着的,没事就要翻翻,后面的并发还是好难啃,继续啃吧!下面来小结一下。。。1.JVM的每个线程都有自己的栈空间,栈空间的大小限制vm的线程数量,太大了,实用的线程数减少,太小容易抛出java.lang.StackOverflowError异常,程序员无法控制。堆:存放new出来的对象,GC负责回收,动态分配,速度慢;eg:string,类对象。栈:存放基本数据类型,存放对象的引用,静态类也存放在栈中。2.基本类型变量作为类的成员时,会有默认值3.static关键字:1)用static声明的方法或变量可以直接被使用;2)stati 阅读全文
posted @ 2012-04-15 23:04 vtianyun 阅读(354) 评论(0) 推荐(0) 编辑