摘要: 在开发一些APP的过程中,我们可能涉及到头像的处理,比如从手机或者相册获取头像,剪裁成自己需要的头像,设置或上传头像等。网上一些相关的资料也是多不胜数,但在实际应用中往往会存在各种问题,没有一个完美的解决方案。由于近期项目的需求,就研究了一下,目前看来还没有什么问题。这里我们只讨论获取、剪裁与设置,... 阅读全文
posted @ 2015-08-05 23:50 M-Stone 阅读(1021) 评论(0) 推荐(0) 编辑
摘要: 自从在Android 3.0引入Fragment以来,它被使用的频率也随之增多。Fragment带来的好处不言而喻,解决了不同屏幕分辨率的动态和灵活UI设计。但是在Activity管理多个Fragment中,通常会遇到这些问题:1、Fragment的状态保存2、Fragment的重影当然,这些问题也... 阅读全文
posted @ 2015-07-23 23:29 M-Stone 阅读(10372) 评论(4) 推荐(7) 编辑
摘要: 这段时间项目中使用到了VpnService,整理了一下官方文档的资料VpnService is a base class for applications to extend and build their own VPN solutions. In general, it creates a vi... 阅读全文
posted @ 2015-01-29 18:12 M-Stone 阅读(6425) 评论(0) 推荐(0) 编辑
摘要: 1、通过三个引用传递的范例,进一步巩固对于引用传递的基本应用。 例1:class A{ int x = 10 ;}public class Demo{ public static void main(String args[]){ A a = new A() ; a.x = 30 ; fun(a) ; System.out.println(a.x) ; } public static void fun(A temp){ temp.x = 100 ; }} 此程序的结果是100,下面来分析内存的操作图: 例2:public class Demo{ public static vo... 阅读全文
posted @ 2012-01-10 15:33 M-Stone 阅读(297) 评论(2) 推荐(1) 编辑
摘要: 1、String的两种实例化方法 String本身是一个类,在String类中定义了如下的构造方法: public String (String original) 可以接收一个String类的对象,并重新实例化String对象,除了此方法之外,String还可以采用直接赋值的方式进行对象的实例化。public class StringDemo01{ public static void main(String args[]){ String str1 = "hello" ; //使用直接赋值的方式完成 String str2 = new String("WORL 阅读全文
posted @ 2012-01-03 17:56 M-Stone 阅读(414) 评论(1) 推荐(1) 编辑
摘要: 1、构造方法 在每个类中都存在一个构造方法,构造方法的主要目的是为类中的属性初始化的。 观察对象的实例化操作: Person per = new Person(); 实际上此“()”就表示调用的是一个方法,那么这个方法实际上就是构造方法。 构造方法定义时的要求: 构造方法的名称必须与类名称一致 构造方法定义时没有返回值类型的声明 不能在构造方法中使用return返回一个内容,但是可以能够通过return返回到方法调用处class Person{ private String name ; private int age ; public Person(){}... 阅读全文
posted @ 2012-01-02 17:47 M-Stone 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 观察下面的代码:class Person{ String name ; int age ; public void tell(){ System.out.println("姓名:" + name +",年龄:" + age) ; }}public class SimpleDemo{ public static void main(String args[]){ Person per = new Person() ; per.name = "张三" ; per.age = -30 ; per.tell() ; }} 如果现在的年龄为负数 阅读全文
posted @ 2011-12-28 11:43 M-Stone 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 1、面向对象概念 面向对象是一个比较先进的设计思路,在这之前有一种开发设计,称为面向过程,两者之间的区别为: 面向过程:专注于解决问题 面向对象:经过完整的分析、设计之后才可以进行开发 面向对象的程序开发实际上分为三种:OOA、OOD、OOP OOA:面向对象分析 OOD:面向对象设计 OOP:面向对象程序2、面向对象的三大特征 封装性:对外部不可见,保护类中的操作不被外部直接访问 继承性:扩展类的功能。 多态性:方法的重载,不同的方法名称根据传入的参数类型或个数不同调用的方法也不同。多态是在整个Java中最重要的概念,而且一个好的面向对象设计中肯定要大... 阅读全文
posted @ 2011-12-27 17:41 M-Stone 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 1、定义: 方法就是一段可重复调用的代码段。但是,现在的方法是使用主方法直接调用的,所以定义格式为: public static 返回值类型 | void 方法名称([参数列表]){ [return 返回内容;] } void 表示此方法没有任何的返回值类型,不需要使用 return 语句。如果要定义有返回值的方法,直接在返回值类型上写上数据类型即可。2、方法的重载 在方法的使用中也存在一种概念,叫做重载。 重载:指的是方法的名称相同,但是参数的类型或个数不同。public class SimpleDemo{ public static void main(Str... 阅读全文
posted @ 2011-12-22 18:04 M-Stone 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 1、数组的定义格式: 数组属于引用数据类型,使用的时候需要开辟内存空间的。 声明时直接开辟内存空间 数据类型 数组名称[] = new 数据类型[长度] 数据类型 [] 数组名称 = new 数据类型[长度] 分布声明 声明数组:数据类型 数组名称[] = null --> 开辟栈内存空间:相当于一个人的名字。 实例化数组:数组名称= new 数据类型[长度] --> 开辟堆内存空间:数组只有开辟了堆内存空间之后才能使用。 注意: 关键字new只要一出现,则肯定表示数据类型是引用数据类型,要进行堆、栈空间的开辟。 开辟的内容都是用默认值表示,如果要想... 阅读全文
posted @ 2011-12-22 13:54 M-Stone 阅读(129) 评论(0) 推荐(0) 编辑