- 博客(40)
- 资源 (11)
- 收藏
- 关注
原创 【无标题】Flutter的BoxShadow阴影
Flutter的BoxShadow阴影我们经常使用flutter阴影效果,flutter的阴影比如Container中设置decoration。Container( padding: EdgeInsets.only(left: 16), decoration: BoxDecoration(color: Colors.white, boxShadow: [ BoxShadow(
2022-01-04 18:06:49
2565
原创 AndroidMPChart中的LineChart使用的一些总结
引入依赖 1.在项目的module中的build.gradle添加如下代码:allprojects { repositories { maven { url "https://jitpack.io" } }}2. 在依赖中添加如下代码依赖:dependencies { implementation 'com....
2020-01-09 13:35:50
4373
转载 Android 的OpenGL ES与EGL
原文地址:http://hi.baidu.com/aokikyon/item/70e973d043bad21c21e2500dAndroid 的OpenGL ES与EGLAndroid OpenGL ES与EGL1 名词解释 OpenGL ES (OpenGL for Embedded Systems,以下简称OpenGL) OpenGL 三维图形 API 的子集,针对手机、P
2015-07-20 21:10:55
889
转载 Android Fragment 基本介绍
Android Fragment 基本介绍Android Fragment 基本介绍Fragment Android是在Android 3.0 (API level 11)开始引入Fragment的。 可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragm
2014-07-31 20:45:19
374
转载 viewholder的使用
viewholder的使用博客分类: android 开发 Adapter的作用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个View。 优化的思路两种: 1. View的重用 View的每次创建是比较耗时的,因此对于getview方法传入的convertView
2014-07-31 15:15:34
477
转载 Java之线程停止
Java之线程停止博客分类: JavaJavathread Thread.stop、Thread.suspend、Thread.resume 和Runtime.runFinalizersOnExit 这些终止线程运行的方法已经被废弃,因为它存在安全隐患。 Java线程一般在执行完run方法就可以正常结束,不过有一类线程叫做伺服线程,不间断地执
2014-07-31 15:02:15
478
转载 Android Fragment的使用
Android Fragment的使用(1)可以分为下面的几部分:使用支持库创建一个Fragment创建一个动态UI多个Fragment之间的通信 1、使用支持库如果您的应用需要运行在3.0及以上的版本,可以忽略这部分内容。如果您的应用使用在3.0以下、1.6及以上的版本,需要使用支持库来构建。使用支持库的步骤:
2014-07-31 14:58:46
370
转载 23种设计模式全解析
2013-06-24 10:56 4312人阅读 评论(0) 收藏 举报目录(?)[+]一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模
2014-05-17 11:24:56
491
转载 oracle树形结构由子节点递归得到父节点
在oracle中如何从子节点记录向父节点上溯?比如有一个表:guid parentguid1 02 13 14 25 26 57 58 7我们从GUID为1根据parentguid关系可以查出该GUID下的所有
2014-05-17 11:13:54
806
转载 23种设计模式(15):备忘录模式
定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态类型:行为类类图: 我们在编程的时候,经常需要保存对象的中间状态,当需要的时候,可以恢复到这个状态。比如,我们使用Eclipse进行编程时,假如编写失误(例如不小心误删除了几行代码),我们希望返回删除前的状态,便可以使用Ctrl+Z来
2014-05-17 11:11:22
493
转载 23种设计模式(14):解释器模式
定义:给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。类型:行为类模式类图: 解释器模式是一个比较少用的模式,本人之前也没有用过这个模式。下面我们就来一起看一下解释器模式。 解释器模式的结构抽象解释器:声明一个所有具体表达式都要实现的抽象接口(或者抽象类),接口中主要是一个interp
2014-05-17 11:10:26
409
转载 23种设计模式(13):迭代器模式
定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。类型:行为类模式类图: 如果要问java中使用最多的一种模式,答案不是单例模式,也不是工厂模式,更不是策略模式,而是迭代器模式,先来看一段代码吧:[java] view plaincopypublic static void prin
2014-05-17 11:09:28
343
转载 23种设计模式(12):策略模式
定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。类型:行为类模式类图: 策略模式是对算法的封装,把一系列的算法分别封装到对应的类中,并且这些类实现相同的接口,相互之间可以替换。在前面说过的行为类模式中,有一种模式也是关注对算法的封装——模版方法模式,对照类图可以看到,策略模式与模版方法模式的区别仅仅是多了一个单独的封装类Context,
2014-05-17 11:08:55
398
转载 23种设计模式(11):责任连模式
定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。类型:行为类模式类图: 首先来看一段代码:[java] view plaincopypublic void test(int i, Request req
2014-05-17 11:07:25
381
转载 23种设计模式(10):命令模式
定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。类型:行为类模式类图:命令模式的结构 顾名思义,命令模式就是对命令的封装,首先来看一下命令模式类图中的基本结构:Command类:是一个抽象类,类中对需要执行的命令进行声明,一般来说要对外公布一个execute
2014-05-17 11:06:47
350
转载 访问者模式讨论篇:java的动态绑定与双分派
java的动态绑定 所谓的动态绑定就是指程执行期间(而不是在编译期间)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。java继承体系中的覆盖就是动态绑定的,看一下如下的代码:[java] view plaincopyclass Father { public void method(){
2014-05-17 11:04:59
368
转载 23种设计模式(9):访问者模式
定义:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。类型:行为类模式类图: 访问者模式可能是行为类模式中最复杂的一种模式了,但是这不能成为我们不去掌握它的理由。我们首先来看一个简单的例子,代码如下:[java] view plaincopyclass
2014-05-17 11:03:53
403
转载 23种设计模式(8):观察者模式
定义:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。类型:行为类模式类图: 在软件系统中经常会有这样的需求:如果一个对象的状态发生改变,某些与它相关的对象也要随之做出相应的变化。比如,我们要设计一个右键菜单的功能,只要在软件的有效区域内点击鼠标右键,就会弹出一个菜单;再比如,我们要设计一个自动部署
2014-05-17 11:03:23
343
转载 23种设计模式(7):中介者模式
定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。类型:行为类模式类图:中介者模式的结构 中介者模式又称为调停者模式,从类图中看,共分为3部分: 抽象中介者:定义好同事类对象到中介者对象的接口,用于各个同事类之间的通信。一般包括一个或几个抽象的事件方法,并由子
2014-05-17 11:02:52
359
转载 23种设计模式(6):模版方法模式
定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。类型:行为类模式类图: 事实上,模版方法是编程中一个经常用到的模式。先来看一个例子,某日,程序员A拿到一个任务:给定一个整数数组,把数组中的数由小到大排序,然后把排序之后的结果打印出来。经过分析之后,这个任务大体上可分为两部分,排序和
2014-05-17 10:50:24
353
转载 创建类模式总结篇
创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。创建类模式有5种,分别是:单例模式:用于得到内存中的唯一对象。工厂方法模式:用于创建复杂对象。抽象工厂模式:用于创建一组相关或相互依赖的复杂对象。建造者模式:用于创建模块化的更加复杂的对象。原型模式:用于得到一个对象的拷贝。为什么需要创建性模式 首先
2014-05-17 10:49:04
321
转载 23种设计模式(5):原型模式
定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型:创建类模式类图:原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clo
2014-05-17 10:48:14
374
转载 23种设计模式(4):建造者模式
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。类型:创建类模式类图:四个要素产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。抽象建造者:引入抽象
2014-05-17 10:47:39
406
转载 23种设计模式(3):抽象工厂模式
定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。类型:创建类模式类图:抽象工厂模式与工厂方法模式的区别 抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程中,通常一个产品结构,
2014-05-17 10:46:02
464
转载 23种设计模式(2):工厂方法模式
定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。类型:创建类模式类图:工厂方法模式代码[java] view plaincopyinterface IProduct { public void productMethod(); } cl
2014-05-17 10:44:04
405
转载 23种设计模式(1):单例模式
定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。类型:创建类模式类图:类图知识点:1.类图分为三部分,依次是类名、属性、方法2.以>结尾的为注释信息3.修饰符+代表public,-代表private,#代表protected,什么都没有代表包可见。4.带下划线的属性或方法代表是静态的。5.对类图中对象的关
2014-05-17 10:39:53
397
转载 设计模式六大原则(1):单一职责原则
转载于:http://blog.csdn.net/zhengzhb/article/details/7278174定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建
2014-05-17 09:35:41
369
转载 设计模式六大原则(2):里氏替换原则
转载于:http://blog.csdn.net/zhengzhb/article/details/7281833 肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o
2014-05-17 09:34:54
348
转载 设计模式六大原则(3):依赖倒置原则
转载于:http://blog.csdn.net/zhengzhb/article/details/7289269定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原
2014-05-17 09:34:04
351
转载 设计模式六大原则(4):接口隔离原则
转载于:http://blog.csdn.net/zhengzhb/article/details/7296921定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几
2014-05-17 09:33:18
318
转载 设计模式六大原则(5):迪米特法则
转载于:http://blog.csdn.net/zhengzhb/article/details/7296930定义:一个对象应该对其他对象保持最少的了解。问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:尽量降低类与类之间的耦合。 自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论
2014-05-17 09:32:08
449
转载 设计模式六大原则(6):开闭原则
转载于:http://blog.csdn.net/zhengzhb/article/details/7296944定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。解决方案:当软
2014-05-17 09:29:52
347
转载 Android浏览图片,点击放大至全屏效果
最近做一个项目类似于QQ空间,做到照片浏览的功能,对于QQ空间中点击图片放大至全屏,感觉效果很赞,于是也做了个类似的效果。如下。我不知道QQ那个是怎么做的,我的思路如下:首先,从图片缩略界面跳转到图片详情页面,应该是从一个Activity跳转到另外一个Activity,应该图片详情页面也有很多操作,用View或者Dialog不是很好。所以现在难点就是,如何使
2014-05-16 22:16:13
1781
原创 怎么在eclipse的配置文件里指定jdk路径
如何在eclipse的配置文件里指定jdk路径 运行eclipse时报如下错误: 在eclipse的配置文件里指定jdk路径,只需在eclipse的配置文件里增加-vm参数即可。 打开eclipse目录下的eclipse.ini配置文件,增加-vm配置,需要注意的是该参数要加在-vmargs之前 eclipse.ini配置文件: -st
2014-05-16 22:08:00
589
转载 ViewPager实现QQ主界面,ViewFlipper实现某些新闻应用,自动播放,很流畅
开篇 首页只是作为ViewPager,ViewFlipper,ViewFlow的入口,提供三个Button进行跳转。 1. ViewPager 先看看官方文档怎么介绍ViewPager的:http://developer.android.com/reference/android/support/v4/vi
2014-05-12 19:21:25
785
原创 Dialog 大小和位置的控制
这段时间来一直研究dialog了,dialog中有一个特例而且经常使用他是AlertDialog它的创建是需要使用builder这个参数,可以直接使用builder来创建对话框,但有一些设置就需要用他的父类dialog来设置了。像大小,位置等这些。AlertDialog有一个特殊的地是他有setMessage,这个方法可以直接设置dialog内容为文本。进入正题设置dialog为无标题使用这个
2014-04-02 20:01:40
1080
原创 强制for循环弊端
今天在解决下载问题时,遇到了各种Exception 首先遇到的就是ConcurrentModificationException异常,这个异常解决起来也好解决,异常产生原因是应为,使用了强制for循环for(Post post:postList)在for循环中对集合中的元素作了修改引起的。解决方法也很简单,只要打印异常就能看到是哪行出的错,然后List postlist = postList;改成
2014-04-02 19:56:46
1933
原创 BUG Lcom/demo/helloworld/widget/viewpagerindicator/simple/BaseSampleActivity; (107)错误
Unable to resolve superclass ofLcom/demo/helloworld/widget/viewpagerindicator/simple/BaseSampleActivity; (107)08-09 09:58:06.259: W/dalvikvm(1277): Link ofclass 'Lcom/demo/helloworld/widget/viewpage
2014-04-02 19:53:36
680
原创 Android SparseArray指的是稀疏数组(Sparse array)
SparseArray是android里为这样的Hashmap而专门写的class,目的是提高效率,其核心是折半查找函数(binarySearch),今天在看这个class的实现时发现一个很好的设计: public void remove(int key) { delete(key); }remore和delete都实现了,功能当然是一样的,对用
2014-04-02 19:46:18
1054
原创 Android getwidth()和getheight()已经过时使用point
获取屏幕宽高4.0中直接使用getwidth()和getheight()已经过时使用point替代用法是 //屏幕宽高 Displaydisplay = getWindowManager().getDefaultDisplay(); Pointsize = newPoint(); display.getSize(size); wi
2014-04-02 19:42:16
6676
android仿微信、人人网、酷狗、安全卫士等
2014-05-28
android 图表 j4lChartAndroid.jar
2014-05-27
viewpager实现防QQ界面,包含viewflipper和viewflow用法,很流畅
2014-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人