[flutter] painterの描画の実装調査記録

image

Painterとは?

painterとは簡単な描画機能を提供してくれるパッケージ。

使い方は以下の記事にまとめてありますので、合わせて参照ください。

image [Flutter]paiterを使って描画する方法

今回調査する内容

  • 描画されたデータはどのように保持されているのか?

結論

painter.dart内にある_PathHistoryクラスの_paths変数で保持されています。

データの格納順序

重要なのは以下のコード

描画が開始される時の処理の流れを見てデータ格納の処理を理解していきましょう

onPanStart()メソッドで描画開始を検知します

①描画された座標を変数posに格納(左上が(0,0))

以下の知識が必要になりますので、わからなければ参照してください。

②履歴にposを追加する

widget変数はPainterクラスにアクセスするための変数です。

addメソッドの中身は以下の通り。

currentPaint変数には描画の色や太さや線の種類が格納されている。

③履歴にposが追加されたことを通知する

changeNotifierクラスのnotifyListeners()を呼んでいる。

このメソッドが呼ばれると以下のメソッドが呼ばれて描画が実行される。

描画途中の処理と描画終わりの処理はほぼ同じなので説明は割愛します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


error: Content is protected !!