複数の画像を指定することでオブジェクトを「壁紙」にできる Java 用のグラフィックス システムがあり、(比較的) 複雑な位置合わせとサイズ変更オプションを適用できます。
(特に非常に低電力のデバイスで) 適切に実行するために、壁紙が最初に描画されるときに内部画像に画像を描画し、次にその合成画像をターゲット グラフィックス コンテキストにコピーして画面に表示します。その後、オブジェクトのサイズが変更された場合にのみコンポジットが再作成されるため、その後の再描画の唯一の作業は、クリップされた領域をコンポジットからターゲット グラフィックス コンテキストにコピーすることです。
ソリューションは非常にうまく機能しますが、アルファチャンネルの透明度を持つ PNG 画像がある場合、コンポジットをペイントするときにアルファチャンネルが失われます。つまり、コンポジットにはすべてのピクセルが完全に不透明です。そのため、画面上のグラフィックス コンテキストへの後続のコピーでは、壁紙のオブジェクトの背後にあるものが透けて見えるようにできません。
RGBImageFilter を使用して完全に透明なピクセルを除外することはできましたが、ブレンドされた透明度を機能させるための解決策がわかりません。
アルファチャンネルをそのままにして画像をペイントし、アルファ値を持つ2つのピクセルが重なっている場合は結合する方法を知っている人はいますか?