从矩阵来看颜色变换
开篇
之前从矩阵的角度分析了平移,旋转,缩放,对称的变换,文章在从矩阵来看Android中的一些动画变换。
在android中,图片的对象主要是bitmap,它是由点阵和颜色值组成的。
1、点阵是一个图片宽*图片高的矩阵,矩阵中的每一个元素对应着图片的一个像素。根据点阵可以计算出图片占用的内存大小。
之前从矩阵的角度分析了平移,旋转,缩放,对称的变换,文章在从矩阵来看Android中的一些动画变换。
在android中,图片的对象主要是bitmap,它是由点阵和颜色值组成的。
1、点阵是一个图片宽*图片高的矩阵,矩阵中的每一个元素对应着图片的一个像素。根据点阵可以计算出图片占用的内存大小。
本篇文章主要讲23种设计模式中的7种结构型设计模式,包括适配器模式,装饰者模式,代理模式,外观模式,桥接模式,组合模式,享元模式。
适配器模式是将一个类的方法接口转换成客户端期望的接口表示。我们可以约定,把客户端期望的接口叫做目标Targetable,被转换的类叫source。适配器模式可以分为:类的适配器模式,对象的适配器,接口的适配器。
本文主要是介绍5种创建型模式中,除了单例模式外的其他创建型模式,包括建造者模式,工厂模式,抽象工厂模式,原型模式。
1、建造者模式,可以将对象的表现和创建(实现)分离开来,根据不同的创建步骤可以产生不同的对象,而对象的创建也是一次性的,创建后的对象是不可变。
在这一篇文章中,主要讲一下如何使用Gson解释服务器返回的具有固定格式的数据。
服务器:在本地使用nodejs的express框架建立的简单服务器。它返回了的数据如下:
1 | var testArrayStr = "{\"data\": [{\"cnName\": \"jakewharton\",\"age\": 13,\"IsBoy\": true}, {\"cnName\": \"小红\",\"age\": 24,\"IsBoy\": false}],\"msg\": \"\",\"status\": 200}"; |
单例模式是23种设计模式中最简单和易用的模式。在某些情境下,如在一个上市公司中,有很多不同级别的员工,但是公司的CEO或者CTO都是只有一个的,CEO或者CTO在公司里就要求是一个单例。单例模式,就是某个类因实际情况的需要,要求在全局的范围内只能有唯一的实例对象,这个对象是常驻内存的,可以重复使用,降低重复创建对象的开销。
下面主要讲解实现单例模式的方法以及它们的优缺点
本文基于的retrofit版本是:2.1.0,文章会从retrofit的使用逐渐进入它的源码进行分析。retrofit是一个基于okhttp封装的,具有RESTful风格的HTTP网络请求框架。也就是说,它只负责网络接口配置和调用的封装,实际底层调用的工作还是由okhttp完成的。可以使用它以注解的形式配置请求的地址,请求参数等,还可以添加自定义拦截器、网络拦截器和数据转换器等进行处理和扩展。
public View inflate(XmlPullParser parser, ViewGroup root, boolean attachToRoot)
主要是从源码角度理解下面三段代码的区别:
mInflater.inflate(R.layout.item, null);
mInflater.inflate(R.layout.item, parent ,false);
mInflater.inflate(R.layout.item, parent ,true);
第一句:直接返回了布局,不正确处理布局参数
第二句:返回布局,并能正确处理了布局参数
第三句:返回布局,能正确处理了布局参数,并将布局添加到parent中
在这一篇文章中,会看HandlerThread和IntentService的源码。为什么一起讲它们呢?在Android中有一条思路,就是从java的线程,到Android中的消息机制,到将java线程和消息机制结合就是HandlerThread,而IntentService就是在HandlerThread基础上再与service结合在一起。
关于Android中的异步的东西,还有AsyncTask,AsyncTask是对java中的线程池的再次封装。进一步,可以联想到Loader.