作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何检测 flutter 中的阻力速度?
我想使用自定义绘画在屏幕上以 flutter 的方式绘制屏幕,当速度较小时,笔划宽度应较小,但是当拖动速度较高时,笔划宽度应较大。
GestureDetector(
onPanUpdate: (DragUpdateDetails details) {
setState(
() {
RenderBox object = context.findRenderObject();
Offset _localPosition =
object.globalToLocal(details.globalPosition);
_points = List.from(_points)..add(_localPosition);
},
);
},
onPanEnd: (DragEndDetails details) => {
_deletedPoints.clear(),
_points.add(null),
// _listPoints.add(_points),
// _listPoints = List.from(_listPoints)..add(_points),
},
child: CustomPaint(
painter: Draw(points: _points),
size: Size.infinite,
),
),
扩展customPainter的自定义绘图小部件
class Draw extends CustomPainter {
List<Offset> points;
// List<List<Offset>> points;
Draw({this.points});
@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint()
..color = brushColor
..strokeCap = StrokeCap.round
..strokeWidth = brushWidth;
for (int i = 0; i < points.length - 1; i++) {
if (points[i] != null && points[i + 1] != null) {
canvas.drawLine(points[i], points[i + 1], paint);
}
}
}
@override
bool shouldRepaint(Draw oldDelegate) => oldDelegate.points != points;
}
最佳答案
速度是在给定时间内位置变化了多少。
为此,您在details.delta.distance
回调中具有onPanUpdate
,该回调返回一个 double 值,指示自上次更新以来指针已移动了多少,它越大,速度越大。
根据您的情况,您可以根据行进距离更改笔划宽度。
关于flutter - 如何检测 flutter 中的阻力速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63390755/
我是一名优秀的程序员,十分优秀!