摘要: 听说过,方法重写、方法重载,今天偶然知道了什么是方法隐藏。这牵涉到一个问题:java中的静态方法能被子类继承吗?答案是肯定的,但若子类中有与父类中同名同参的方法,则父类的方法将被隐藏。请看下面的例子:1.1 public class SuperClass {2 3 public static void print() {4 System.out.println("print in SuperClass");5 }6 }2. 1 public class SubClass extends SuperClass { 2 public static voi... 阅读全文
posted @ 2013-04-29 16:59 g.hui 阅读(2838) 评论(0) 推荐(0)
摘要: 装饰模式:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。如定义中说的那样,装饰模式可以动态的为对象添加新的职责,通过继承也能达到扩展类功能的目的。那么这两种方式的区别在哪里呢?虽然通过继承也能达到扩展功能但这种方式是在编译时静态决定的,所有子类都会继承到相同的行为,不具有弹性,应对未来变化的能力较低。而通过Decorator模式就可以在运行时动态扩展,而且被装饰对象可以自由组合新的行为,更易于应对未来的功能扩展。设计原则:类应该对扩展开放,对修改关闭。这就是“开放关闭”原则。类应该是容易扩展的在不需要修改现有代码的情况下,这样的设计可以应对改变,而且不会引入.. 阅读全文
posted @ 2013-04-29 11:06 g.hui 阅读(263) 评论(0) 推荐(0)
摘要: 什么是.9.png格式的图片呢?为什么会有这个格式的图片?这种格式图片有哪些特殊的用途?请接着看...定义:这种格式的图片在android 环境下具有自适应调节大小的能力,是一种为适应特殊拉申需要而产生的图片,防止图片在拉申后变形。作用:(1)允许开发人员定义可扩展区域,当需要延伸图片以填充比图片本身更大区域时,可扩展区的内容被延展。(2)允许开发人员定义内容显示区,用于显示文字或其他内容说明: 有这样一张png图片: 像这种图片我们一般作为背景图片来用,但在拉申的过程中会发生变形。我们不想让它在圆角及别的有特别形状的地方拉伸,因为拉伸这些地方会造成图片的变形。为了解决这个问题andr... 阅读全文
posted @ 2013-04-27 13:00 g.hui 阅读(1091) 评论(0) 推荐(0)
摘要: 1>adb push 说明:此命令用于将本地计算机中的文件copy到android模拟器或手机的sd下 操作格式:adb push 源文件 目标文件 实例:将本地计算机桌面上的1.txt 复制到模拟器sd下的good目录并重命名为f1.txt 1.首先进入到1.txt所在目录(即桌面,也是源文件所在目录) 2.执行命令:adb push 1.txt /sdcard/good/f1.txt(若无需重命名,则可这样:adb push 1.txt /sdcard/good/.注意:此时good目录必须已存在)2>adb pull 说明:此命令用于将android模拟器或手机s... 阅读全文
posted @ 2013-04-26 18:35 g.hui 阅读(646) 评论(0) 推荐(0)
摘要: 形象描述 什么是观察者模式呢?个人感觉,这个和现在很流行的微信比较像。在微信中我们可以Follow一些公众号,比如明人、明星、企业等。这样呢,我们就会即时收到他们推送给我们的消息。这里面有两个角色,一个就是我们所Follow的这些公众号,还有就是我们自己。在观察者模式中我们称我们Follow的对象为“主题”或“可被观察者”,我们自己就是“观察者”。定义 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。UML类图 说明: 当两个对象之间松耦合,它们依然可以交互,但是不太清楚彼此的细节。观察者模式提供了一种对象设计,让主题和观察者之间松耦... 阅读全文
posted @ 2013-04-25 22:43 g.hui 阅读(1253) 评论(1) 推荐(0)
摘要: 在 android之自定义view 一中,我们了解了如何自定义一个View。但我们并没有说明如何为自定义的View设置自定义的属性。这一篇中简单介绍一下:添加自定义属性步骤: 1)在res/values下创建attrs.xml 2)在相关xml布局文件中添加新的命名空间 3)重写publicView(Contextcontext,AttributeSetattrs)实例: 我们还用android之自定义view 一中的例子。我们为CustomView1添加颜色、半径两个属性最终运行结果图:代码: attrs.xml<?xml version="1.0" encodin 阅读全文
posted @ 2013-04-23 21:53 g.hui 阅读(281) 评论(0) 推荐(0)
摘要: 转载请注明出处概述 当Android系统提供的UI组件不足以满足我们的需求时,我们可以自己继承View来设计自己的View。然后,选择重写部分的方法。通常可以被重写的方法如下:1)构造函数,View有三个构造函数: publicView(Contextcontext) 当我们通过代码创建view时需要复写此方法。 publicView(Contextcontext,AttributeSetattrs) 当我们通过xml创建view时需要复写此方法。 publicView(Contextcontext,AttributeSetattrs, int defStyle) 通过源码我们可以知道... 阅读全文
posted @ 2013-04-23 20:32 g.hui 阅读(829) 评论(0) 推荐(2)
摘要: 推荐大家阅读:《head first 设计模式》,下面总结的内容主要是从这本书中来的,加上自己的理解加以整理。开始之前 OO基础:抽象、封装、多态、继承 OO原则:封装变化;多用组合少用继承;针对接口(superType)不针对实现编程定义 defines a family of algorithms,encapsulates each one,and makes them interchangeable.Strategy lets the algorithm vary independently from clients that use it.定义算法簇,分别封装起来,让它们之间可以... 阅读全文
posted @ 2013-04-22 13:03 g.hui 阅读(272) 评论(0) 推荐(0)
摘要: 【欢迎转载,但请注明出处】博客园:http://www.cnblogs.com/byirain/archive/2013/04/21/3031001.html你需要前面对Handler,Looper作了一些总结,阅读此篇前建议大家先看一下:1.android多线程与UI操作2.android之handler总结3.android之Looper什么关系那么Thread、Handler、Looper、MessageQueue、Message之间到底是个什么关系呢?请看下图: 所属关系图1.通过翻看源码可以看到在Looper中有一个ThreadLocal<Looper> sThreadL 阅读全文
posted @ 2013-04-21 12:21 g.hui 阅读(945) 评论(0) 推荐(1)
摘要: 在android开发中经常听到这样一句话——“android的UI操作不是线程安全的,同时也只有主线程才能够操作UI”。对于这句话,一直感觉不是太理解。当初心里想既然android的UI操作只能在UI线程即主线程中操作,别的线程不允许操作。所以是不会出现线程的同步问题的,这不应该是很安全的吗?为什么不是线程安全的呢?最近才想明白这句话什么意思:正是因为android的UI操作不是线程安全的,所以才不允许在非UI线程中进行UI操作。试想假如允许在其它工作线程中允许直接进行UI操作,会带来一个问题:多个线程同时操作一个控件可能会有冲突发生。所以android就限定了只能在UI线程中操作各种vi.. 阅读全文
posted @ 2013-04-19 13:28 g.hui 阅读(1036) 评论(0) 推荐(0)