- 博客(245)
- 资源 (29)
- 收藏
- 关注
原创 java内部类
内部类概念定义在另一个类内部的类内部类主要特点:内部类可以很好的实现隐藏,可以使用public(默认)、protect、private修饰符。以前声明类的时候都是public,或者不写。外部类不能使用protect、private修饰符。内部类可以访问外部类所有的成员,包括私有的成员。外部类不能访问内部类的成员和方法。必须建立内部类的对象才能访问。内部类可以解决一些问题,比
2016-08-23 01:07:12
1293
原创 自定义动画
创建自定义动画1、覆盖父类的initialize方法,实现初始化工作。2、实现applyTransformation的逻辑。 @Override protected void applyTransformation(float interpolatedTime, Transformation t) { super.applyTransformation(inte
2016-08-22 00:38:17
711
原创 Android布局动画
布局动画作用在ViewGroup上,用来给ViewGroup增加View的时候添加动画的过度效果。最简单的使用,给ViewGroup加上android:animateLayoutChanges="true"当布局变化的时候回显示Android默认的过度效果,缺点:无法使用自定义的动画替换这个效果。我们可以使用LayoutAnimationController自定义一个子View的过
2016-08-21 23:58:13
532
原创 View的animate驱动动画
使用View的animate方法直接驱动属性动画: @TargetApi(Build.VERSION_CODES.JELLY_BEAN) //API16 private void viewAnimate() { mImage.animate().alpha(0).setDuration(1000).withStartAction(new Runnable() {
2016-08-21 23:37:17
2327
原创 在xml中使用属性动画
xml中定义属性动画 <objectAnimator android:duration="1000" android:propertyName="scaleX" android:valueFrom="1.0" android:valueTo="2.0" android:valueType="floatTy
2016-08-21 23:29:05
1575
原创 PropertyValuesHolder和AnimatorSet
PropertyValuesHolder:类似AnimatorSet,针对同一个对象的多个属性同时作用多种动画。最后调用 实现东属性动画的共同作用。 private void propertyValuesHolder() { PropertyValuesHolder pv1 = PropertyValuesHolder.ofFloat("translationY",
2016-08-21 19:21:16
892
原创 Android属性动画
视图动画只改变现实,不能响应事件,当某个元素发生视图动画后,其响应事件的位置依然在动画前的位置。Animation:视图动画框架Animator:属性动画框架Animator框架中使用最多的AnimatorSet和ObjectAnimator配合。使用ObjectAnimator进行更精细化的控制,值控制一个对象的一个属性值;使用多个ObjectAnimator组合到Animato
2016-08-21 00:16:02
354
原创 Android视图动画
透明度:AlphaAnimation旋转:RotateAnimation缩放:ScaleAnimation位移:TranslateAnimation动画合集:AnimationSetAndroid3.0之前视图动画一家独大,Android3.0之后属性动画框架推出。视图动画缺点:不具备交互性。视图动画有点:效率高,使用方便。
2016-08-21 00:01:06
359
原创 事件拦截机制
Android为触摸事件封装了一个类:MotionEvent。Activity所拥有的方法:dispatchTouchEvent onTouchEventViewGroup所拥有的方法:dispatchTouchEventonInterceptTouchEventonTouchEventView所拥有的方法:dispatchTouchEvento
2016-08-20 23:45:25
551
原创 自定义View
只有站在设计者的角度上,才可以更好的创建出定义View。在自定义View时,我们通常会去重写onDraw()方法来绘制View显示的内容,如果该View还要使用wrap_content属性,那么嗨必须重写onMeasue方法。另外,通过自定义attrs属性还可以设置新的属性配置。View中重要的回调方法:onFinishInflate():从xml加载组建后回调。onSizeCha
2016-08-20 18:23:28
339
原创 ViewGroup的绘制
ViewGroup通常是不需要绘制的,因为本身就没有需要绘制的东西。如果不是指定ViewGroup的背景色,那么ViewGroup的o'nDraw方法都不会被调用。ViewGroup会使用dispatchDraw()方法绘制子View,其过程是遍历子View,调用子View的绘制方法进行绘制。
2016-08-20 17:23:09
468
原创 ViewGroup的测量
当ViewGroup的大小为wrap_content的时候,ViewGroup就需要对子View进行遍历,以便获得所有子View的大小,从而决定自己的大小。而其它模式下则会通过集体的指定值来设置自身大小。ViewGroup在测量时通过遍历子View,调用子View的Measure方法获得每一个子View的测量结果。当子View测量完毕,需要把子View放到合适的位置上,这个过程就是Vi
2016-08-20 17:19:13
797
原创 View的绘制
测量完当然要绘制了,绘制就要调用onDraw()方法了。重写onDraw()方法,在Canvas上绘制所需要的图形。Canvas就像是个画板,使用画笔Paint就可以在上面作画了。 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); }在View
2016-08-20 16:45:58
391
原创 View的测量
1、MeasureSpec类32位的int值,高2位时测量模式,低30位时测量大小。2、模式简介EXACTLY:精确值模式,layout_width、layout_height指定具体值或者match_parent时。AT_MOST:最大值模式,layout_width、layout_height指定为wrap_content时,控件大小随着子控件或内容的变化而变化,此时控件的大小
2016-08-20 15:41:09
448
原创 Android控件架构
控件树中,上层控件负责下层控件的测量与绘制,并传递交互事件。树的顶部ViewParent是整棵树的控制核心,所有的交互管理事件都由它来调度分配。每个Activity都包含一个Window对象,在Android中Window对象通常由PhoneWindow来实现,PhoneWindow将DecorView作为整个应用窗口的根View。所有view事件的监听都是有WindowMange
2016-08-20 14:42:03
335
原创 生命周期该干的事
onCreate:创建基本的UI元素。onStart:onResume:重新初始化在onPause中释放的资源。onPause:释放系统资源,如Camera、sensor、receivers。onStop:清除Activity的资源,避免浪费。onDestory:因为引用会在Activitiy销毁的时候销毁,而线程是不会的,所以在这里清除开启的线程很有必要。
2016-08-20 14:17:16
399
原创 Activity重新创建
如果你的系统长时间处于stopped的状态,而且此时系统需要更多的内存或者系统内存极为紧张,系统就会回收你的Activity,当然系统不会牺牲你,成全别人,这个时候还是很人性的,系统会通过onSaveInstanceState将Activity的状态保存到Bundle对象中。我们也可以自己往Bundle中添加键值对,来保存自定义的信息。当需要重新创建Activity的时候,保存的Bun
2016-08-20 14:16:52
856
原创 Android的任务栈
一个App启动时,如果当前环境不存在改App的任务栈,系统就会创建一个新的任务栈。这个栈也被叫做Task。一个Task中的Activity可以来自不同的App,通一个App钟的Activity也可能不在一个Task。正常模式下的栈就是后进先出,这里不在介绍。下面要介绍的是“特权”模式下的情形:1、AndroidManifest.xml启动模式此模式是通过an
2016-08-20 14:16:08
1145
原创 bash shell
bash shell什么是bash?用户和Linux内核交互的工具,yong用户通过bash操作内核完成系统的使用和管理。bash 是shell的一种。shell 的种类:/bin/sh(已经被/bin/bash代替)/bin/bash(默认的shell)/bin/ksh(源自贝尔实验室,兼容bash)/bin/tcsh(整合C shell,功能更为强大)/bi
2016-04-12 18:51:28
584
转载 bug总结
B1: java.lang.ClassCastException出现这个错误表示很蛋疼,原因是我们居然导入了两个不同版本的zxing包,这个问题是由于大意造成的以后一定要清理包中无用的代码,特别是功能相同已经被废弃的代码B2: java.lang.IllegalStateException: Can not perform this action after onSaveInsta
2016-01-29 11:09:04
653
原创 链接
定制iOS 7中的导航栏和状态栏http://beyondvincent.com/2013/11/03/2013-11-03-120-customize-navigation-status-bar-ios-7/iOS 学习资料整理https://github.com/Aufree/trip-to-iOS
2016-01-26 17:45:39
350
原创 设计模式基本原则
1、单一职责原则:类的职责要单一 ,不要将太多的职责放到同一个类当中去。eg:数据结构职责类和算法行为都放在一个类User。我们应该把数据结构和行为分开。2、开闭原则:一个软件实体应该对扩展开放,对修改关闭。(可变性封装)3、里氏代换原则:可以接受基类对象的地方必然要可以接受子类的对象。4、依赖倒转原则:抽象不应当依赖于细节;细节应当依赖于抽象,要针对接口编
2016-01-22 15:38:30
450
转载 设计模式连接
http://design-patterns.readthedocs.org/zh_CN/latest/creational_patterns/builder.html
2016-01-18 18:27:29
507
原创 建造者模式、工厂模式、中介者模式区别
建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式包含如下角色:Builder:抽象建造者ConcreteBuilder:具体建造者Director:指挥者Product:产品角色建造者模式的结构中还引入了一个指挥者类Director,该类的作用主要有两个:一、它隔离客户与生产过程;二、它负责控制产品的生成过程。
2016-01-18 18:25:22
5224
原创 装饰模式、装饰器模式、代理模式、外观模式区别
装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对对象的访问。用代理模式,代理类可以对它的客户隐藏一个对象的具体信息。因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。并且,当我们使用装饰器模 式的时候,我们通常的做法是将原始对象作为一个参数传给装饰者的构造器。使用代理模式,代理和真实对象之间的的关系通常在编译时就已经确定了,而装饰者能够在运行时递归地
2016-01-18 17:21:37
6048
原创 动态代理
在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface)、另一个则是 Proxy(Class),这一个类和接口是实现我们动态代理所必须用到的。每一个动态代理类都必须要实现InvocationHandler这个接口,并且每个代理类的实例都关联到了一个handler,当我们通过代理对象调用一个方法的时候,这个方法的调用就会被转发为由Invo
2016-01-14 10:19:41
515
原创 onNewIntent调用时机
singleInstance:第一次进入:onCreate onStart在栈顶再次进入: onNewIntent不在栈顶再次进入:onNewIntent onRestart onStart按home键再次进入:onRestart onStart按返回键:onRestart onStartstandard:第一次进入:onCreate onStart在栈顶再
2015-12-31 14:03:29
7004
原创 podfile
常用库:pod 'RegexKitLite', '~> 4.0'pod 'AFNetworking' # , '~> 2.4.1' pod 'MBProgressHUD'pod 'SDWebImage', '~> 3.7.1'pod 'Reachability', '~>3.1.1'pod 'ReactiveCocoa', '~> 2.3.1'pod 'EGODat
2015-12-30 11:07:14
503
转载 如何快速正确的安装 Ruby, Rails 运行环境
对于新入门的开发者,如何安装 Ruby, Ruby Gems 和 Rails 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境。次安装方法同样适用于产品环境!系统需求首先确定操作系统环境,不建议在 Windows 上面搞,所以你需要用:Mac OS X 任意 Linux 发行版本(Ubuntu,CentOS, Redha
2015-12-25 14:07:15
526
原创 IOS移除NSAssert& NSLog
创建新的Scheme选择New Scheme菜单项,接着会弹出一个对话框,从中选择Target,点击OK按钮就创建成功了,这样就创建好的Scheme。此时再选择Edit Scheme菜单项项编,选择Info标签,将Build Configuration(编译配置)修改为Release。这里说明一下编译配置各个项的含义:Debug是为调试编译而配置的,Release是为发布编译而配置的.
2015-12-23 10:08:31
1374
原创 IOS国际化
打开PROJECT->info 添加Localizations国际化语言1、应用名和本地字符数据国际化:新建文件InfoPlist.strings&Localizable.strings。2、图片国际化:打开Localizable.strings (English) ,并添加如下内容:"imageName" = "ilike"; 把以下代码添加至Localiza
2015-12-22 10:03:42
1045
转载 Mac 可设置环境变量的位置、查看和添加PATH环境变量
Mac 启动加载文件位置(可设置环境变量)------------------------------------------------------- (1)首先要知道你使用的Mac OS X是什么样的Shell,使用命令echo $SHELL如果输出的是:csh或者是tcsh,那么你用的就是C Shell。如果输出的是:bash,sh,zsh,那么你的用
2015-12-07 15:29:37
448
原创 OC 实例变量的可见度
在oc里面,所有的实例对象默认的可见度是受保护的,protected指的是本类和子类 public(公有的)实例变量可以在类的外部和内部操作protected(受保护的,默认的)实例变量只能在该类和其⼦子类内操作private(私有的)实例对象只能在该类内访问内部,指的是相应类的@implementation 和@end之间OC中的⽅方法分两种:类⽅方法和实例⽅
2015-11-30 16:13:41
677
原创 IOS零碎
plist xml格式文件通常用于储存用户设置pch 预编译文件头addSubview 是将view加到所有层的最顶层insertSubView可以控制它添加到父视图的哪一层 makeKeyAndVisible作用被使用对象的主窗口显示到屏幕的最前端。hiddenUIView方法隐藏这个窗口initWithFrame 没用Nib文件(XIB)时,用代码控
2015-11-27 17:12:53
429
原创 获取UIView坐标和宽高
CGRectGetHeight返回label本身的高度CGRectGetMinY返回label顶部的坐标CGRectGetMaxY 返回label底部的坐标CGRectGetMinX 返回label左边缘的坐标CGRectGetMaxX 返回label右边缘的坐标CGRectGetMidX表示得到一个frame中心点的X坐标CGRectGetMidY表示得到一个frame中
2015-11-16 14:42:16
3835
原创 iOS 定时器(NSTimer)的使用
调用一次计时器方法: myTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(scrollTimer) userInfo:nil repeats:NO]; 重复调用计时器方法:timer = [NSTimer scheduledTimerWithTimeInte
2015-11-16 11:33:37
1751
Android高级编程
2012-06-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人