10
Drawableの色相を変更するためのColorMatrixおよびColorMatrixColorFilterの使用について
私はアプリのUIに取り組んでおり、グレースケールアイコンを使用して、ユーザーがテーマを選択した色に変更できるようにしています。これを行うには、ある種のColorFilterを適用して、ドローアブルの上に色をオーバーレイしようとしています。私はPorterDuff.Mode.MULTIPLYを使用してみましたが、白も色でオーバーレイされていることを除いて、それは必要とほぼ同じように機能します。私が理想的に探しているのは、Photoshopの「カラー」ブレンディングモードのようなものです。グラフィックは透明度と明度を保持し、画像の色のみを変更します。たとえば、次のように なります。いくつかの調査を行った後、ColorMatrixColorFilterクラスが必要なことを実行するように見えますが、マトリックスの使用方法を示すリソースを見つけることができません。4x5のマトリックスですが、マトリックスの設計方法について知っておく必要があります。何か案は? 編集:大丈夫、私がこれまでにこれで見つけたものは次のとおりです: 1 0 0 0 0 //red 0 1 0 0 0 //green 0 0 1 0 0 //blue 0 0 0 1 0 //alpha この行列が恒等行列(適用された場合、変更はありません)であり、数値の範囲は0〜1(浮動小数)です。この行列は各ピクセルに乗算され、新しい色に変換されます。だから、ここからぼんやりしてきます。したがって、各ピクセルは0.2, 0.5, 0.8, 1、変換マトリックスが点在するargb値(例:)を含む1 x 4ベクトルであると思います。したがって、画像の赤の強度を2倍にするには、次のような行列を使用します。 2 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 …