长孙雨聪--七星上将

相信现在是因为相信未来

开篇

Row 和 Column 分别是 Flutter 中的水平和垂直布局,它们都是 MultiChildRenderObjectWidget,所以它们都是可以渲染多个孩子的控件,而它们是如何渲染孩子的大小和位置的则是有 renderObject 定义的。它们的继承关系图如下:

阅读全文 »


开篇

之前从矩阵的角度分析了平移,旋转,缩放,对称的变换,文章在从矩阵来看Android中的一些动画变换

在android中,图片的对象主要是bitmap,它是由点阵和颜色值组成的。
1、点阵是一个图片宽*图片高的矩阵,矩阵中的每一个元素对应着图片的一个像素。根据点阵可以计算出图片占用的内存大小。

阅读全文 »


前言

本篇文章主要讲23种设计模式中的7种结构型设计模式,包括适配器模式,装饰者模式,代理模式,外观模式,桥接模式,组合模式,享元模式。

适配器模式

适配器模式是将一个类的方法接口转换成客户端期望的接口表示。我们可以约定,把客户端期望的接口叫做目标Targetable,被转换的类叫source。适配器模式可以分为:类的适配器模式,对象的适配器,接口的适配器。

阅读全文 »


前言

本文主要是介绍5种创建型模式中,除了单例模式外的其他创建型模式,包括建造者模式,工厂模式,抽象工厂模式,原型模式。

1、建造者模式,可以将对象的表现和创建(实现)分离开来,根据不同的创建步骤可以产生不同的对象,而对象的创建也是一次性的,创建后的对象是不可变。

阅读全文 »


前言

在这一篇文章中,主要讲一下如何使用Gson解释服务器返回的具有固定格式的数据。

分析

服务器:在本地使用nodejs的express框架建立的简单服务器。它返回了的数据如下:

1
2
3
4
5
var testArrayStr = "{\"data\": [{\"cnName\": \"jakewharton\",\"age\": 13,\"IsBoy\": true}, {\"cnName\": \"小红\",\"age\": 24,\"IsBoy\": false}],\"msg\": \"\",\"status\": 200}";

var testObjStr = "{\"data\": {\"cnName\": \"小红\",\"age\": 24,\"IsBoy\": false},\"msg\": \"\",\"status\": 200}";

res.end(testObjStr);
阅读全文 »


什么是单例模式

单例模式是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中

阅读全文 »
0%