关闭

[置顶] 第一篇、创建型设计模式——简单工厂模式(静态工厂方法模式)

在具体学习设计模式之前,想要了解什么是设计模式,以及为什么要学习设计模式。 简单来说,设计模式就是一套被人们反复应用,形成了一套代码编写规范的经验以及结构总结。我们通过设计模式的学习,可以有意识地将业务逻辑与界面逻辑做到有效的分离,使程序的耦合度降低,让程序变得易维护、易扩展、易复用、少修改。 这里还要提一句的是,我们在用面向对象语言编写代码是,应该注意点几点准则: 1、单一指责原则...
阅读(186) 评论(1)

用ViewDragHelper自定义侧滑菜单——浅析源码解决与ScrollView的滑动冲突

上篇博文带大家分析学习了关于ViewDragHelper的简单基本用法,本篇将带大家用ViewDragHelper做一个简单侧滑菜单的Demo,并通过对ViewDragHelper源码的简单分析,找到其与ScrollView滑动事件冲突的原因与解决方法。闲话少说,直入正题,首先来看一下运行效果。 首先,我们先看一下布局文件,以便整体了解界面布局结构: <LinearLayout xml...
阅读(177) 评论(0)

ViewDragHelper用法介绍,快捷的拖动效果设计

许多朋友在开发中,经常会碰到许多的拖放,滑动效果处理。手势的判断让人烦不胜烦,还经常出现这样那样的问题,真是心累! 然而,在Android中,Google在其中support库的v4包中,为我们提供类一个强大的类——ViewDragHelper。通过这个类,我们基本可以实现各种各样的滑动与拖放效果。下面我们就来初步的了解一下这个类的用法。 如上图,我们通过ViewDragHelper来...
阅读(259) 评论(0)

Android的事件分发(dispatchTouchEvent),拦截(onInterceptTouchEvent)与处理(onTouchEvent)

在Android中,View的结构是树状的,所以,当触发触摸事件的时候,其事件传递也是从上之下一层层的传递。下面我们结合例子来一点点进行分析。 首先,我们需要了解事件处理中的几个方法: 1、在ViewGroup中,事件分为dispatchTouchEvent(事件的分发),onInterceptTouchEvent(事件的拦截),onTouchEvent(事件的处理)。 2、在View中,事...
阅读(118) 评论(1)

Android中的坐标体系与实现滑动效果的几种方式

一、两种坐标系 1、Android坐标系:它是以手机屏幕左上角为坐标原点,向右为X轴正方向,向下为Y轴正方向。         2、视图坐标系:描述的是子视图在父视图中的位置。坐标原点是父视图的左上角,向右为X轴正方向,向下为Y轴正方向。 二、获取坐标与相对距离的方法 可以分为两类: 1、View提供的方法 getTop():获取到的是自身上边到父布局顶边的距离...
阅读(228) 评论(0)

第六篇、创建型设计模式——建造者(Builder)模式/生成器模式

建造者(Builder)模式又可以称为生成器模式,它是将一个复杂对象的构建与它的表示进行分离,使得同样的构建过程可以创建不同的表示。 那么,怎么理解这句话呢,其实说白了就是:当我们需要创建一个比较复杂的对象,并且,这个对象的创建过程比较稳定,那么,我们只需要通过指定这个对象的类型与内容,就可以一步一步的创建出这个复杂的对象,而无需知道这个对象内部的具体组装细节。 我们还是通过举例来进行...
阅读(99) 评论(0)

第五篇、创建型设计模式——单例模式

这个模式相信大家肯定不陌生了,而且相对来说,也是比较好理解的一个创建型设计模式,对于单例模式,大家经常说的一个比喻就是,类的计划生育。那么,什么是单例呢? 单例模式就是保证一个类仅存在一个实例,比提供一个用于访问它的对外接口。 那什么时候使用单例模式呢? 当我们的程序需要实例化一个对象,并且希望他仅仅存在一个实例的时候,就可使用次设计模式。例如,某些视频播放器,无论你点开了多少个视频...
阅读(98) 评论(0)

第四篇、抽象工厂模式的优化

在上一篇的博文中,我们研究了抽象工厂,我们简单的回顾一下: 首先,抽象工厂是为了应对产品簇的概念而生的。 其次,它使我们在不影响现有产品等级结构的基础上,方便的在不同产品系列当中进行切换。 最后,它封装了产品对象的创建过程,使之与客户端进行分离,无需客户端考虑他的组装过程。 但是,如果需求来自功能的增加,我们不仅要增加新的功能父类与产品系列子类,还需修改工厂接口以及所有子类工厂。 ———...
阅读(74) 评论(1)

第三篇、创建型设计模式——抽象工厂模式

前言:工作中,经常会有朋友抱怨说,最烦的就是翻来覆去的修改功能,尤其是客户天马行空的功能需求,用再多的设计模式也避免不了改改改。。。没错,功能的变更不可避免的会导致代码的修改,万能的模式是不存在的。但是,在同样的功能修改的前提下,我们能加以控制的,就是多改与少改。好的设计可以使我们在修改功能需求时变得更加高效。 ——————————————————————————————————————————...
阅读(87) 评论(0)

第二篇、创建型设计模式——工厂方法模式

前言:从最开始接触编程,到一点点有了些心得体会,到迫切的希望写出漂亮的代码,总会有意识的去寻找途径。当开始接触设计模式的时候,会发现,种种设计模式之间很难区分,甚至觉得极为类似。有时候也会在几种模式之间徘徊,不知道用哪种更好。其实,就设计模式而言,没有最好的,只有最适合的,每种设计模式都有自己的优缺点。每个人都有自己的理解,很难说哪个是正确,哪个是错误。有时候,不用设计模式比用了设计模式更加高效。...
阅读(138) 评论(2)

android的事件传递

1、基础知识 (1) 所有 Touch 事件都被封装成了 MotionEvent 对象,包括 Touch 的位置、时间、历史记录以及第几个手指(多指触摸)等。 (2) 事件类型分为 ACTION_DOWN, ACTION_UP, ACTION_MOVE, ACTION_POINTER_DOWN, ACTION_POINTER_UP, ACTION_CANCEL,每个事件都是以 ACTI...
阅读(104) 评论(0)
    个人资料
    • 访问:1602次
    • 积分:130
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:0篇
    • 译文:0篇
    • 评论:5条