0

画面にいくつかのビットマップがあり、設定されている値に応じて色を徐々に変更する必要があります。LightingColorFilter、PorterDuffColorFilter、ColorMatrixを調べましたが、問題は色が絶えず変化することです(1秒間に数十回と多くのオブジェクト)。上記の2の問題は、メモリリークとパフォーマンスの問題が発生することです。

誰かがビットマップの色を徐々に変更する方法を提案できますか(新しいビットマップを作成したり、キャンバスを一時的に保存したりすることなく)-パフォーマンスの妨げにもなります)。私は周りを見回しましたが、OpenGLなしでは不可能のようです(私には何の手がかりもありません)。

4

2 に答える 2

0

色のインデックスを使用して、限られた数の色(たとえば、256)の画像を使用してから、インデックスの色を変更できます。それは十分に速いです。

これはパレットアニメーションです。この例では、アニメーション自体にThread.sleepsを使用していますが、これを正しいアニメーションと進行状況ロジックに置き換えることができます。

于 2013-01-05T00:23:16.163 に答える
0

私の推測では、必要な速度で探している効果については、Android 3.0(Honeycomb)以上に制限する場合にのみ、OpenGLまたはRenderscriptで達成できます。

注目すべきプロジェクトの1つは、GPUImageのAndroidポートです。

https://github.com/cyberagent-jp/android-gpuimage

また、事前に作成されたフィルターを再利用できるかどうかを確認してください。

于 2013-01-05T00:23:51.220 に答える