- 博客(32)
- 资源 (4)
- 收藏
- 关注
原创 Android生成验证码
验证码是以图片的形式显示的,所以需要写一个自定义验证码控件public class ValidateView extends View { /** * 点数 */ private int pointNum = 150;// 背景杂质 /** * 线段数 */ private int lineNum = 3;// 背景杂质 /** * 验证码字长 */ pr
2015-08-07 19:02:45
829
原创 JSON解析字符串,null变成了"null"
收到一串JSON数据,想从里面解析出需要的成分。很奇怪的是,里面的字符串明明就是null,解析出来的结果确实"null",造成了很大的困扰。JSON数据:data{ "name": "shawn1992", "address": null}解析代码:JSONObject data = obj.optJSONObject("data");String nameStri
2015-07-08 18:28:52
9468
原创 使用Openfire和Asmack实现IM功能,经常出现“Thread already started”的错误
最近使用Openfire和Asmack实现Android端的IM功能,但是实际使用的过程中,经常出现“java.lang.IllegalThreadStateException:Thread already started”的错误。比如:java.lang.IllegalThreadStateExceptionThread already startedjava.lang.Thread
2015-07-07 16:32:24
1393
原创 PBKDF2加密的实现
PBKDF2(Password-Based Key Derivation Function)。通过哈希算法进行加密。因为哈希算法是单向的,可以将任何大小的数据转化为定长的“指纹”,而且无法被反向计算。另外,即使数据源只改动了一丁点,哈希的结果也会完全不同。这样的特性使得它非常适合用于保存密码,因为我们需要加密后的密码无法被解密,同时也能保证正确校验每个用户的密码。但是哈希加密可以通过字典攻击和
2015-07-06 14:28:24
24460
1
原创 Android使用有道翻译API实现在线翻译功能
在Android应用中,添加在线翻译的功能,这里调用的是有道翻译的API。使用有道翻译API,首先要申请一个key,申请地址为:有道翻译API申请地址。申请之后就会得到一个keyfrom和一个key。获取翻译结果的数据接口为:http://fanyi.youdao.com/openapi.do?keyfrom=&key=&type=data&doctype=&version=1
2015-06-27 11:12:40
11813
4
原创 Android实现心跳的效果
最近再做一个教育类的项目。在做一些学习工具的时候,美工提出了一些要求,大致如下:其实实现过程也不难,大致就是对一个视图控件添加一个圆形的背景,然后该视图进行动画处理,膨胀的同时,透明度增大,收缩的同时,透明度降低。我在例子中是使用了TextView,所以首先对TextView添加一个圆形的背景:<shape xmlns:android="http://schemas.android.
2015-06-25 16:28:17
4589
原创 Gson的使用
Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。——维基百科Gson包的下载地址相对于较为传统的Json解析来说,Gson在解析速度和所使用的内存在有着明显的优势。Gson的应用主要为toJson与fromJson两个转换函数,而在使用这种对象转换之前需先创建
2015-04-21 11:01:22
550
原创 设计模式之观察者模式(Observer)
观察者模式(Observer)定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己。该模式主要的角色:抽象主题角色(被观察者):把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现
2015-04-17 17:13:51
743
原创 ScrollView嵌套多个ListView
要解决的问题:1、ListView在ScrollView中不能完全显示,只能显示一个Item。默认情况下,Android是不支持在ScrollView中嵌套ListView,因为ListView的高度是不确定,会随着Item的高度和Item的数量改变。2、焦点问题,如果把ListView显示的项数固定,变成可滚动的,当布局的高度超出了一页,ScrollView滚动,ListView则不能滚
2015-04-03 09:51:25
1933
原创 设计模式之六大原则
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。设计原则都是要实现高内聚低耦合,设计模式实现这些原则,从而达到了代码复用、可维护性增加的目的。一、单一职责原则( The single responsibility principle :SRP)对于一个类而言,应该只有一个引起它变化的原因,即一个类只负责一项职责。问
2015-01-06 01:19:49
450
原创 Android之进程管理
在Android中,每一个应用程序都运行在自己独立的进程中,都拥有一个独立的Dalvik虚拟机实例,也就是说,每打开一个应用就是打开一个虚拟机。每一个Dalvik应用都作为一个独立的Linux 进程执行。虚拟机之间相互独立,这样一个应用程序崩溃不会影响另一个应用程序,也不会导致系统的崩溃,确保了安全性。系统为每个应用都分配一个虚拟机,导致消耗更多的内存。Linux在进程活动停止都就结束该进程,
2014-12-16 12:17:00
484
原创 设计模式之装饰者模式(Decorator)
装饰者模式(Decorator)动态地扩展一个对象的功能而不必改变源类文件和使用继承。它的设计原则是:多用组合,少用继承。装饰者模式的优点装饰者模式与继承关系的目的都是要扩展对象的功能,继承是静态的,它在系统运行前就决定了。装饰者更加灵活。通过使用不同的具体装饰类以及这些装饰类的排列组合,可以创造出很多不同行为的组合。在装饰模式中的各个角色抽象构件(Compon
2014-11-28 21:32:29
456
原创 设计模式之适配器模式(Adapter)
适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。目的是消除由于接口不匹配所造成的类的兼容性问题。在下面的例子中,适配器模式使ITarget接口的实现类具有Source类的功能。适配器的角色有三个:Source:ITarget:Adapter:适配器有两种不同的形式:类的适配器模式和对象的适配器模式。
2014-11-27 00:29:11
433
原创 Java网络编程详解
IP协议是用于报文交换网络的一种面向数据的协议,它定义了寻址方法和数据报的封装格式,任务是根据主机和目的主机的地址传送数据。
2014-11-20 20:52:02
597
原创 Android之SQLite操作与升级
android 应用建数据库时,默认建立在系统内“/data/data/'应用程序包名'/database/”下,通过改变数据库的路径,也可以使其建立在SD/TF卡上。在SD卡的优点:1 当系统恢复出厂设置等操作后,重新安装应用。数据不会丢失。2 方便备份、恢复。只要复制到PC上,或从PC复制到Android设备的SD卡中即可。
2014-11-03 18:01:40
499
原创 Java之String常用的公共方法UtilForString
public class UtilForString{ /** * 用base64算法加密字符串 * * @param content 输入字符串 * @return 返回加密后的字符串 */ public static String encodeBase64(String content) { return com.sun
2014-10-30 21:06:11
676
原创 Java之日期时间常用的公共方法UtilForDate
public class UtilForDate{ /** * 格式化日期 * * @param dateStr 字符型日期 * @param format 格式 * @return 返回日期 */ public static java.util.Date parseDate(String dateStr, String format
2014-10-30 11:05:10
618
原创 设计模式之建造者模式(Builder)
建造者模式(Builder Pattern)也叫生成器模式,其定义如下:separate the construction of a complex object from its representation so that the same construction process can create different representations.将一个复杂对象的构建与它的标示分离
2014-10-05 20:53:08
457
原创 设计模式之抽象工厂模式(Abstract Factory)
抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程中,通常一个产品结构,表现为一个接口或者抽象类,也就是说,工厂方法模式提供的所有产品都是衍生自同一个接口或抽象类,而抽象工厂模式所提供的产品则是衍生自不同的接口或抽象类。
2014-10-05 16:07:53
476
原创 设计模式之工厂方法模式(Factory Method)
工厂方法模式(Factory Method)的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。
2014-10-05 13:38:03
510
原创 Java序列化与反序列化
当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为对象。将对象转化为字节流的过程其实就是序列化(Serialization),而将字节流重新转化成对象的过程则是反序列化(Deserialization)。
2014-09-11 17:26:41
485
原创 Android如何使用代码动态生成界面
我们最常用使用XML来编写Android应用程序的UI,这样的好处是方便快捷可视化,而且维护和修改特别容易,但是它是静态的。如果我们要做的程序的界面是固定的,用XML固然是最好的选择,但是如果我们需要动态、灵活地控制UI,使用代码来动态生成UI无疑使最好的办法。在XML中,我们使用的五大布局:LinearLayout(线性布局)、RelativeLayout(相对布局)、TableLa
2014-08-28 17:53:22
1069
原创 Android读取NFC卡的编号
NFC相关androidManifest文件设置:一、权限:二、sdk级别限制:三、特殊功能限制这个生命可以让你的应用在google play上被声明使用者必须拥有nfc功能。
2014-08-13 18:03:13
2531
Android生成验证码
2015-08-07
Java RMI(远程方法调用)Demo
2014-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人