自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

牛崽的博客

何时成为大牛

  • 博客(162)
  • 问答 (3)
  • 收藏
  • 关注

原创 CAKeyframeAnimation-关键帧动画

//关键帧动画 CAKeyframeAnimation- (void)keyAnimation{ CALayer *layer =[CALayer layer]; layer.bounds = CGRectMake(0, 0, 100, 100); layer.position = CGPointMake(100,100); layer.backgroundColo

2017-02-04 14:43:10 460

原创 文章标题

//缩放- (void)animationScale{ CALayer *layer =[CALayer layer]; layer.bounds = CGRectMake(0, 0, 100, 100); layer.position = CGPointMake(100,100); layer.backgroundColor = [UIColor yellowCo

2017-02-04 14:40:17 316

原创 CABasicAnimation-旋转

//旋转- (void)animationRotation{ //创建layer CALayer *layer =[CALayer layer]; layer.bounds = CGRectMake(0, 0, 100, 100); layer.position = CGPointMake(100,100); layer.backgroundColor =

2017-02-04 14:38:12 755

原创 CABasicAnimation-平移

- (void)animationTranslate{ //创建layer CALayer *layer =[CALayer layer]; layer.bounds = CGRectMake(0, 0, 100, 100); layer.position = CGPointMake(100,100); layer.backgroundColor = [UIC

2017-02-04 14:34:41 1295

原创 SEL与NSLog

一、 SEL方法的存储位置每个类的方法列表都存储在类对象中每个方法都有一个与之对应的SEL类型的对象根据一个SEL对象就可以找到方法的地址,进而调用方法SEL类型的定义typedef struct objc_selector *SEL;SEL对象的创建SEL s = @selector(test);SEL s2 = NSSelectorFromString(@"test");SEL

2017-01-10 10:14:57 1015

原创 类的本质

#import <Foundation/Foundation.h>@interface Person : NSObject@property NSString *name;- (void)test;@end#import "Person.h"@implementation Person- (void)test{ NSLog(@"call test...\n");}+ (void)

2017-01-10 09:37:38 381

原创 RxJava Join函数的理解

RxJava的join函数官方表述比较模糊,较难理解。研究了一些时间后终于明白到底是真么回事,先上代码:import java.util.concurrent.TimeUnit;import rx.Observable;import rx.Observer;import rx.functions.Func1;import rx.functions.Func2;public class Join

2016-12-15 11:22:17 1039

原创 图像倒影

为图像添加倒影效果之后,图像看起来会有立体感,更有真实感,在Android中使用Matrix类可以很容易实现图像的倒影效果。主要是Matrix的preScale方法的使用,给它设置负数缩放比例,图像就会进行反转。然后通过设置Shader添加渐变效果。Java代码如下: private Bitmap getReflectedBitmap() { BitmapDrawable mBitmapD

2016-12-05 17:29:18 410

原创 图像倾斜

使用Matrix类preSkew或者postSkew可以对图像进行倾斜操作,它的两个参数分别为x和y坐标倾斜度,下面使用preSkew对图像进行倾斜变换,Java代码如下: public Bitmap getScrewBitmap() { BitmapDrawable mBitmapDrawable = (BitmapDrawable) getResources().getDrawable

2016-12-05 17:26:06 1242

原创 图片旋转

使用Matrix类preRotate或者postRotate可以对图像进行旋转操作,它只有一个参数表示旋转的角度,下面使用preRotate对图像顺时针旋转30度,Java代码如下: public Bitmap getRotatedBitmap() { BitmapDrawable mBitmapDrawable = (BitmapDrawable) getResources().getD

2016-12-05 17:24:10 421

原创 图像缩放

使用Matrix类preScale或者postScale可以对图像进行缩放操作,它的两个参数分别为x和y坐标缩放比例,下面使用preScale对图像进行放大0.75倍,Java代码如下: public Bitmap getScaleBitmap() { BitmapDrawable mBitmapDrawable = (BitmapDrawable) getResources().getD

2016-12-05 17:22:55 475

原创 提取图像Alpha位图

ndroid中的ARGB_8888类型的位图由Alpha(透明度)、Red(红)、Green(绿)、Blue(蓝)四部分组成,其中Alpha部分也就是常说的Alpha通道,它控制图像的透明度。在Android中Bitmap类提供了extractAlpha()方法,可以把位图中的Alpha部分提取出来作为一个新的位图,然后与填充颜色后的Paint结合重新绘制一个新图像。下面通过一个例子来说明Bitma

2016-12-05 17:11:29 2210

原创 图片灰化处理

在Android中可以通过ColorMatrix类实现图像处理软件中的滤镜效果,通过ColorMatrix类可以对位图中的每个像素进行变换处理,达到特殊的滤镜效果,下面通过一个例子来介绍如何通过ColorMatrix对图像进行灰化处理,Java代码如下: // 图片灰化处理 public Bitmap getGrayBitmap() { Bitmap mBitmap = BitmapF

2016-12-05 17:10:06 2250

原创 图片圆角处理

在Android中可以很容通过图像叠加的规则为图片添加圆角效果。正常情况下,在已有的图像上绘图时将会在其上面添加一层新的图形。如果绘图时使用的Paint是完全不透明的,那么它将完全遮挡住下面的图像,如果Paint是部分透明的,那么它将会对重叠部分图像的颜色叠加处理。通过PorterDuffXfermode规则可以设置绘制图像时的叠加规则。PorterDuffXfermode是非常强大的转换模式,使用

2016-12-05 17:05:36 953

原创 View转换为Bitmap

在Android中所有的控件都是View的直接子类或者间接子类,通过它们可以组成丰富的UI界面。在窗口显示的时候Android会把这些控件都加载到内存中,形成一个以ViewRoot为根节点的控件树,然后由根节点开始逐级把控件绘制到屏幕上。 可以通过调用控件的setDrawingCacheEnabled(true)方法,开启绘图缓存功能,在绘制View的时候把图像缓存起来,然后通过getDr

2016-12-05 16:57:59 2189

原创 哈希表

哈希表(Hash Table)也叫散列表,是根据关键码值(Key Value)而直接进行访问的数据结构。它通过把关键码值映射到哈希表中的一个位置来访问记录,以加快查找的速度。这个映射函数就做散列函数,存放记录的数组叫做散列表。 通俗的来说,哈希表结构是通过数组+链表来实现的,哈希表的做法其实很简单,就是把key通过一个固定的算法函数即所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长

2016-11-03 17:17:47 951

原创 Android开发必知:6.0权限,官方分析

1.这个新的运行时权限仅当我们设置targetSdkVersion 23(这意味着你已经在23上测试通过了)才起作用,当然还要是M系统的手机。app在6.0之前的设备依然使用旧的权限系统。如果app的targetSdkVersion 低于 23,那将被认为app没有用23新权限测试过,那将被继续使用旧有规则:用户在安装的时候不得不接受所有权限,安装后app就有了那些权限咯!然后app像以前一样奔跑!

2016-10-28 13:51:14 423

原创 ViewConfiguration.getScaledTouchSlop();触发移动事件的最小距离

iewConfiguration.getScaledTouchSlop();触发移动事件的最小距离,自定义View处理touch事件的时候,有的时候需要判断用户是否真的存在movie,系统提供了这样的方法。表示滑动的时候,手的移动要大于这个返回的距离值才开始移动控件。

2016-10-26 14:49:42 9628

原创 Android HandlerThread 的使用

介绍 首先我们来看看为什么我们要使用HandlerThread?在我们的应用程序当中为了实现同时完成多个任务,所以我们会在应用程序当中创建多个线程。为了让多个线程之间能够方便的通信,我们会使用Handler实现线程间的通信。下面我们看看如何在线程当中实例化Handler。 在线程中实例化Handler我们需要保证线程当中包含Looper(注意:UI-Thread默认包含Looper)。

2016-10-20 14:25:39 221

原创 提取图像Alpha位图(图片边缘光晕效果)

Android中的ARGB_8888类型的位图由Alpha(透明度)、Red(红)、Green(绿)、Blue(蓝)四部分组成,其中Alpha部分也就是常说的Alpha通道,它控制图像的透明度。在Android中Bitmap类提供了extractAlpha()方法,可以把位图中的Alpha部分提取出来作为一个新的位图,然后与填充颜色后的Paint结合重新绘制一个新图像。下面通过一个例子来说明Bitm

2016-10-19 16:22:52 2716

原创 Canvas中clipRect、clipPath和clipRegion 剪切区域的API

android的clip有以下两点疑问: Clip(剪切)的时机 Clip中的Op的参数的意思。通常咱们理解的clip(剪切),是对已经存在的图形进行clip的。但是,在android上是对canvas(画布)上进行clip的,要在画图之前对canvas进行clip,如果画图之后再对canvas进行clip不会影响到已经画好的图形。一定要记住clip是针对canvas而非图形。Op一共有 DIF

2016-10-19 11:53:15 8109

原创 getParent().requestDisallowInterceptTouchEvent(true)剥夺父view 对touch 事件的处理权

android 事件处理机制之requestDisallowInterceptTouchEvent夺取ViewPager的左右滑动requestDisallowInterceptTouchEvent探究requestDisallowInterceptTouchEvent失效的原因在开发过程中可能会遇到诸如此类问题:1、在上下滑动的ScrollView中嵌套一个横滑列表,拖动横滑列表时可能引起Scro

2016-10-18 14:07:47 5356

原创 为什么一个匿名内部类使用一个在其外部定的对象必须使用final修饰

Thinking In Java(java编程思想)里面的说法(唯一正确的说法): 如果定义一个匿名内部类,并且希望它使用一个在其外部定的对象,那么编译器会要求其参数引用是final 的。以下是分析过程:首先看代码public class Tester { public static void main(String[] args) { A

2016-10-18 10:34:46 518

原创 java中所有Map大总结

一、Map用于保存具有映射关系的数据,Map里保存着两组数据:key和value,它们都可以使任何引用类型的数据,但key不能重复。所以通过指定的key就可以取出对应的value。Map接口定义了如下常用的方法: 1、void clear():删除Map中所以键值对。 2、boolean containsKey(Object key):查询Map中是否包含指定key,如果包含则返回true。

2016-10-18 10:19:17 566

原创 15、KVC、KVO和谓词

键值编码的基本概念和用法 键-值编码是一个用于间接访问对象属性的机制,使用该机制不需要调用存取方 法和变量实例就可访问对象属性。 2.键-值编码方法在Objective-C非正式协议(类目)NSKeyValueCoding中被声 明,默认的实现方法由NSObject提供。 键-值编码支持带有对象值的属性,同时也支持纯数值类型和结构。非对象参数 和返回类型会被识别并自动封装

2016-09-12 16:25:00 299

原创 14、文件管理

1、应用程序沙盒的基本概念 •iOS中的沙盒(sandbox)机制 iOS应用程序只能对自己创建的文件系统读取文件,这个“独立”“封闭”“安全”的空间,我们称为沙盒。它一般存放着你的程序包文件(可执行文件)、图片、 声音、视频、plist、sqlite数据库以及其他文件。 •每个应用程序都有自己的独立的存储空间(沙盒) •一般来说应用程序间是不可以相互访问 •模

2016-09-09 10:57:21 276

原创 13、单例模式

单例设计模式 ·基本概念 单例设计模式运用较为普遍、广泛且较为简单的设计模式之一,它的设计原理是:始终返回一个实例,即一个类始终只有一个实例。 创建单例的基本步骤 ·声明一个单件对象的静态实例,并初始化为nil。 ·创建一个类的类工厂方法,生成一个该类的实例,当且仅当这个类的实例为nil时 ·覆盖allocWithZone:方法,确

2016-09-07 15:35:13 183

原创 12、对象归档(序列化)的基本概念

·概念: 对象归档是指将对象写入文件保存在硬盘上,当再次重新打开程序时, 可以还原这些对象。你也可以称它为对象序列化、对象持久化 ·数据持久性的方式 ·NSKeyedArchiver——对象归档 ·NSUserDefaults ·属性列表化(NSArray、NSDictionary保存文件) ·SQlite数据库、Core Data数据库

2016-09-07 11:34:58 538

原创 11、复制对象

1、复制对象的基本概念 ·复制对象的基本概念 复制对象顾名思义,复制一个对象作为副本,它会开辟一块新的内存(堆内存)来存储副本对象,就像复制文件一样。即源对象和副本对象是两块不同的内存区域。对象具备复制功能,必须实现 : ·<NSCopying>协议 ·<NSMutableCopying>协议 ·常用的可复制对象有:NSNumber、NSString、NSArray、

2016-08-31 15:22:58 458

原创 接口与抽象类

相同点: (1)接口和抽象类都不能被实例化,它们都位于继承树的顶端,用于被其他的类实现和继承。 (2)接口和抽象类都是可以包含抽象方法的,实现接口或是继承抽象类的普通子类都必须实现这些抽象方法。不同点: (1)接口只能包含抽象方法,不能包含已经提供实现的方法;抽象类则完全可以包含普通的方法 (2)接口不能定义静态方法;抽象类完全可以定义静态方法。 (3)接口中只能定义静

2016-08-24 15:52:53 241

原创 自定义View的测量

自定义View在Android开发中是个非常重要的模块,我们一直在使用android:layout_width="match_parent"android:layout_height="wrap_content" 这样的属性设置,但是你知道这些属性是怎么执行的吗?不同的设置是如何产生不同的效果? 下面我从源码分析下自定义View的第一步,View的测量,这是你看到的所有视图都要进行的

2016-08-22 09:13:15 284

原创 10、Foundation框架

概述 Mac OS X开发会使用Cocoa框架,它是一种支持应用程序提 供丰富用户体验的框架,它实际上由:Foundation和Application Kit(AppKit)框架组成。 iOS开发,会使用Cocoa Touch框架,它实际上由:Foundation和UIKit框架组成。 AppKit和UIKit框架都是与窗口、按钮、列表等相关的类。 Foundation是Mac OS

2016-08-19 17:49:40 458

原创 9、内存管理

概述 Objective-C为每个对象提供一个内部计数器,这个计数器 跟踪对象的引用次数。所有类都继承自 NSObject 的对象。 Cocoa中提供了一个机制来实现上面提到的这个逻辑模型,它被称为“引用计 数”(reference counting)或“保留计数”(retain counting) 。引用计数的 数值表示对象有几个“人”在使用它。 ·每一个对象都拥有一个

2016-08-19 15:05:32 243

原创 8、协议

协议 协议(Protocol)与Java的Interface(接口) 或者 C++的 纯虚类相同,就是用来声明接口的。协议只是定义了方法的列表,协议不负责实现方法,目的是让别的类来实现。Graphics协议 Graphics中定义了onDraw方法,但是我们仔细分析一下 onDraw方法不能实现的,作为Graphics(几何图形)它无法知道它的子类如何绘制图形,它只能规定绘制图名字为onD

2016-08-18 16:51:13 237

原创 7、分类

分类概念 分类(Category)允许向一个类文件中添加新的方法声明,它 不需要使用子类机制,并且在类实现的文件中的同一个名字下定义这些方法。其语法举例如下:#import "ClassName.h"@interface ClassName ( CategoryName ) // 方法声明@end分类实例 前面多态性中曾经使用过Vector和Scalar的例子,下面我们为 Vector

2016-08-18 16:16:36 237

原创 6、多态性

多态概念 多态性是指在父类中定义的成员变量和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个变量和方法在父类及其各个子类中具有不同的表现形式。我们通过一个例子理解什么多态,例如:“几何图形”类的“绘图”方法,在它的子类“椭圆形”和“三角形”中也都有“绘图”的方法,但是“绘图”方法功能都不同。几何图形类图 Graphics(几何图形)类是Ellipse(椭圆形)类和

2016-08-18 14:44:39 254

原创 5、继承性

继承概念 • 继承性是面向对象的重要概念之一,子类能够继承父类的 某些方法和成员变量。作用域限定符为private 的成员变量是不可以被继承的。子还可以重写父类的方法。 • 为了了解继承性,我们看看这样的一个场景:一位面向对象的程序员小赵,在编程过程中需要描述和处理个人信息, 于是他定义了类Person。Person类@interface Person: NSObject {

2016-08-18 14:24:03 345

原创 4、Objective-C语言的面向对象特性

概述 Objective-C作为一种面向对象的编程语言,具有面向对象 的基本特征,即:封装、继承和多态。主要介绍Objective-C中有关面向对象基本概念:类、对象、方法和属性等。Objective-C中的类 类是Objective-C中的一种重要的数据类型,是组成 Objective-C程序的基本要素。Objective-C的类声明和实现包括两个部分:接口部分和实现部分。@inter

2016-08-18 11:55:48 527

原创 3、控制语句

概述 Objective-C中的控制语句有以下几类: • 分支语句:if-else, switch • 循环语句:while, do-while, for • 与程序转移有关的跳转语句:break, continue, goto分支语句 分支语句提供了一种控制机制,使得程序的执行可以跳过某 些语句不执行,而转去执行特定的语句。 1.条件语句 if-els

2016-08-18 09:50:48 198

原创 2、数据类型、运算符和表达式

概述 数据类型、运算符和表达式在任何的计算机语言中都比较重 要的,在面向对象的Objective-C语言中,除了常规的基本类型,还有对象类型等。运算符和表达式完全遵守C语言 规范。数据类型 Objective-C数据类型可以分为:基本数据类型、对象类型和i d类型。 基本数据类型有:int、float、double和char类型。 对象类型就是类或协议所声明的指针类型,例如:

2016-08-17 16:44:24 529

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除