backgroundTintとbackgroundTintModeって何?backgroundと何が違うの?

backgroundTintとbackgroundTintModeって何なんなの?

backgroundと何が違うの?

と思って調べた結果のメモ。

違い

結論言うと

  • background:背景色
  • backgroundTint:背景色に合成(?)するための色
  • backgroundTintMode:どうやって合成するか

みたいな違いらしい。

 

例えば

  • background:#FF0000
  • backgroundTint:#00FF00
  • backgroundTintMode:add

みたいに設定すると

  • FF0000 + 00FF00 = FFFF00

という色に合成されるよーみたいな感じ。

▲赤と緑が合成されて黄色になる

backgroundTintModeの違い

以下、引用。

背景の色合いを適用するために使用されるブレンドモード。

次の定数値のいずれかでなければなりません。

ConstantValueDescription
add10色合いと描画可能なカラーチャンネルとアルファチャンネルを組み合わせて、結果を有効なカラー値に固定します。飽和(S + D)
multiplyeドロアブルの色とアルファチャンネルを色合いのチャンネルと乗算します。[Sa * Da、Sc * Dc]
screenf[Sa + Da – Sa * Da, Sc + Dc – Sc * Dc]
src_atop9ティントはドロアブルの上に描画されますが、ドロアブルのアルファチャンネルが結果をマスクします。[Da、Sc * Da +(1-Sa)* Dc]
src_in5色合いは、ドロアブルのアルファチャネルによってマスクされます。ドロウアブルのカラーチャンネルは破棄されます。[Sa * Da、Sc * Da]
src_over3ティントはドロアブルの上に描画されます。[Sa +(1-Sa)* Da、Rc = Sc +(1-Sa)* Dc]

引用:https://developer.android.com/reference/android/view/View.html#attr_android:backgroundTintMode

画像編集ソフトとかでもよくあるやつですね。

コメント

タイトルとURLをコピーしました