}
}
上面例子中的 Matrix4
是一个 4D 矩阵,通过它可以实现各种矩阵操作。
Transorm.translate
接收一个 offset
参数,可以在绘制时沿 x,y
轴对子组件平移指定距离。
class ConstrainedWidget extends StatelessWidget{
@override
Widget build(BuildContext context) {
return DecoratedBox(
decoration: BoxDecoration(color: Colors.pink),
//默认原点为左上角,左移20,上移10
child: Transform.translate(
offset: Offset(-20, -10),
child: Text(‘jonas’),
),
);
}
}
Transform.rotate
可以对子组件进行转换变换,示例:
class ConstrainedWidget extends StatelessWidget{
@override
Widget build(BuildContext context) {
return DecoratedBox(
decoration: BoxDecoration(color: Colors.pink),
//顺时针转90°
child: Transform.rotate(
angle: math.pi/2,
child: Text(‘jonas’),
),
);
}
}
注意:需要引入 import 'dart:math' as math;
Transform.scale
可以对子组件进行缩放,示例:
class ConstrainedWidget extends StatelessWidget{
@override
Widget build(BuildContext context) {
return DecoratedBox(
decoration: BoxDecoration(color: Colors.pink),
//方法1.5倍
child: Transform.scale(
scale: 1.5,
child: Text(‘jonas’),
),
);
}
}
注意:Transform
的变换是应用在绘制阶段的,而不是应用在布局阶段,所以无论对子组件应用何种变化,其占用空间的大小和在屏幕上的位置都是固定不变的,因为这些事在布局阶段就已经确定了。
如何成为Android高级架构师!
架构师必须具备抽象思维和分析的能力,这是你进行系统分析和系统分解的基本素质。只有具备这样的能力,架构师才能看清系统的整体,掌控全局,这也是架构师大局观的形成基础。 你如何具备这种能力呢?一是来自于经验,二是来自于学习。
架构师不仅要具备在问题领域上的经验,也需要具备在软件工程领域内的经验。也就是说,架构师必须能够准确得理解需求,然后用软件工程的思想,把需求转化和分解成可用计算机语言实现的程度。经验的积累是需要一个时间过程的,这个过程谁也帮不了你,是需要你去经历的。
但是,如果你有意识地去培养,不断吸取前人的经验的话,还是可以缩短这个周期的。这也是我整理架构师进阶此系列的始动力之一。
成为Android架构师必备知识技能
对应导图的学习笔记(由阿里P8大牛手写,我负责整理成PDF笔记)
部分内容展示
《设计思想解读开源框架》
- 目录
- 热修复设计
- 插件化框架设计
《360°全方面性能优化》
- 设计思想与代码质量优化
- 程序性能优化
7)]
《360°全方面性能优化》
[外链图片转存中…(img-6AaWI9gw-1720087247397)]
- 设计思想与代码质量优化
[外链图片转存中…(img-eDflwYGe-1720087247398)] - 程序性能优化
[外链图片转存中…(img-oC4Hg4eD-1720087247398)]