問題があります。画像に灰色のオーバーレイを描画したいのですが。パスがあり、パスの外側に色を付けたいと思います。エッジがアンチエイリアス処理されていないため、クリッピングは適切ではありません(2.1で機能するようにする必要があります)。
カメラ(右側)で動作させました。SurfaceView(カメラプレビュー)とその上にビューを保持するFrameLayoutがあります。ビューはキャンバス全体のオーバーレイカラーを塗りつぶし、xfermodeを使用してパス(Mode.CLEAR)を削除します。
同じ方法を使用して、右の写真を取得します。最初にビューをImageViewの子孫にしましたが、それは完全に悪かったです。次に、ビューの下にある画像(カメラのプレビューなど)を含むImageViewを追加しましたが、同じ結果になりました。次に、フレームレイアウトから他のimageviewを使用しましたが、同じです。もちろん、私は常にbgcolorをtransparentに設定し、Color.TRANSPARENTを描画しようとしましたが、機能しませんでした。何が問題なのかわかりません。たぶんMode.CLEARはその領域の画面全体をクリアしますか?imageview(または別のsurfaceview)ではなく、カメラのsurfaceviewで動作するのはなぜですか?
私は7時間グーグルを続けていますが、実際の解決策はありません。私が悪いことをしているのを手伝ってくれて、いくつかの「トリック」を共有してくれませんか?前に言ったように、アンチエイリアスエッジ(いくつかの形状には多くの曲線と対角線があります)が必要なので、クリップできません(ストロークを描画しても、ひどいです)。
前もって感謝します。