英雄联盟 LOL - leagueoflegends
Flutter 编写,不定时更新,最近更新 2024-10-15
Flutter 技术交流QQ群 :623512997
平台
支持
说明
下载
Android Pad
✅
平板 Tablet 电视 TV
-
Android Phone
⛔
不准备支持
尺寸不匹配
IOS Phone
⛔
不准备支持
尺寸不匹配
macOS
✅
等待
Windows
✅
Windows 7 以上的64位系统.
- / 可能需要安装C++ runtime 2015
GNU/Linux
✅
等待
Web
✅
等待
var plusPaint = Paint()..color = const Color(0xFF9A8F68);
// 获取SVG的宽度
double svgWidth = plusPath.getBounds().width;
// 定义缩放变换矩阵
Matrix4 matrix = Matrix4.identity();
// 缩放比例 目标宽度 除以 Svg宽度 再除以 2等于缩放比例
double scale = size.width / svgWidth / 2;
// 计算居中的偏移量
var offsetX = (size.width - svgWidth * scale) / 2;
var offsetY = (size.width - svgWidth * scale) / 2;
// 偏移坐标点
matrix.translate(offsetX, offsetY);
// 在X和Y轴上缩放
matrix.scale(scale);
Path drawplusPath = Path();
// 绘制PATH
drawplusPath = plusPath.transform(matrix.storage);
canvas.drawPath(drawplusPath, plusPaint);
绘制画板要用RepaintBoundary包裹,不然刷新时机乱套了
RepaintBoundary(
child: CustomPaint(
painter: painter,
),
// 方式一自动刷新 (监听可变参数)
MyPainter extends CustomPainter {
MyPainter(this.factor) : super(repaint: factor)
/// 动画控制 适用于渐变动画等
final Animation<double> factor;
/// 变量控制 用于手动触发,一次一帧
ValueNotifier<int> factor = ValueNotifier<int>(0);
}
// 方式二手动刷新
class MyPainter extends ChangeNotifier implements CustomPainter
// 刷新
mouseEnter = newMouseEnter;
notifyListeners();