dart - Flutter中的弯曲形状背景标题

我有一个左侧带有“英雄”图标的 ListView 。当我单击一个列表项时,它会加载下一个屏幕,其中包含文章文本和英雄图像(它会很好地/自动地动画到第二个屏幕上的正确位置)。

我原以为这是“艰难”的部分,但我现在正试图获得一个弯曲的形状作为第二个屏幕的顶部背景。我很想把它做成一个绘制的矢量形状,而不是位图,甚至让它滴落/反弹到页面上,但目前......

我只是想弄清楚如何:

  1. 绘制矢量形状
  2. 将其作为屏幕的背景,顶部有其他小部件(请参阅下面第二个屏幕上的紫色曲线)

最佳答案

我为您的弯曲形状制作了一个完整的示例 here

我使用了 CustomPainter然后在 Canvas 上绘图,通过一些几何计算,我得到了弯曲的形状。

最终结果

我是怎么画的?

在编码之前和在白板上我确定了一些事情:

  1. 我的 Canvas 区:
    • 绘制该形状所需的 Canvas 尺寸(等于 Flutter 小部件的尺寸)。
  2. 我的画笔将如何移动以及移动到哪里
    • 如何表示:使用 Path 在 Canvas 上绘制该形状需要哪些 API?类(class)。 例如lineTo()对于直线,quadraticBezierTo()曲线。
    • where 表示:我需要绘制整个形状的点(坐标)在哪里。 (见上图中的黄点和绿点)
  3. 点(坐标)计算:
    • 我使用了一些几何方程来计算坐标。例如Point on a circle’s circumference
    • 我的所有计算都取决于 Canvas 大小,这给了我一个响应式形状。

Full sample here!

https://stackoverflow.com/questions/54000161/

相关文章:

android - 将数据广播到 Flutter 中的多个小部件

file - 在 Flutter 中保存照片(尤其是到相机胶卷)

dart - Java byte[] 的 Dart 等价物是什么

dart - 当我点击它时如何制作 TextSpan 波纹?

flutter - 如何完全处理我的 Stateful Widget?

flutter - BlocProvider 在继承的小部件中不可用

forms - 如何正确预填充 flutter 表单字段?

visual-studio-code - 如何在 Visual Studio Code 中使用 Fl

dart - 如何知道用户是否看到了 flutter 图像

android - 在无状态小部件中使用 TextFormField 在 flutter 中非常困难