問題タブ [custom-painting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
90 参照

flutter - CustomPaint drawLine は、描画された線に透明度を適用できません

アルファチャンネルを使用して、線CustomPaintの色に透明度を適用しようとしていましCanvas.drawLine()た。

問題

ただし、アルファ チャネルの色の微調整は結果に影響しません。たとえば、次のコードでは 100% 不透明な白い線が表示されます。

回避策

drawRect透明な線を得るには、1 ピクセル幅で描画する必要があります。

質問

これは設計によるものですか?

0 投票する
0 に答える
460 参照

flutter - flutter: CustomPaint 描画のレイヤーが互いに混ざり合うのではなく、互いに補完し合うようにします

1 つのグラフに 2 つのレイヤーのグラフを描画していますCustomPaint。1 つ目は、2 つ目のレイヤーの半分以上を塞ぎます。

問題

現在、最初のデータをペイントし、次に 2 つPaintの を使用して 2 番目のデータをそのblendModeセットでペイントします。

これにより、2 つのデータのオーバーレイが作成され、ブレンドされます。しかし、ブレンドは必要ありません。違いの領域を 2 番目Paintの 、つまり補完的な合成ビューを使用してペイントするだけです。

パフォーマンスの面では、遮られた部分の描画を避けるために、ブレンドに内部最適化があるかどうかはわかりません。

参考画像

ここに画像の説明を入力

これらのデータ グラフはすべてブレンドされていることに注意してください。ただし、オーバーラップした部分はパフォーマンスのためにまったく描画されません。

試み

新しいパスを使用して違いを描画することもできますが、これが最も簡単な方法かどうかはわかりません。

確認RepaintBoundaryしましたが、これはまれなデータ変更を処理するウィジェットであり、ここで必要なものではありません。

同様Overlayにスタンドアロンのウィジェットのように見えるので、 に合わせる方法がわかりませんCustomPaint

質問

必要なオクルージョンを実現する標準的な方法はありますか?

0 投票する
0 に答える
31 参照

flutter - 子 customPaint がクリックできない

キャンバスを使用してじょうごのダイアグラムを描画しますが、クリックできません。混乱しています。