PorterDuff.Mode.MULTIPLY——Android中这种颜色转换的意义
在默认的Android主题下,我有三个自定义的彩色按钮PorterDuff.Mode.MULTIPLY——Android中这种颜色转换的意义,android,background-color,argb,colortransform,porter-duff,Android,Background Color,Argb,Colortransform,Porter Duff,在默认的Android主题下,我有三个自定义的彩色按钮 button.getBackground().setColorFilter(customColor, PorterDuff.Mode.MULTIPLY); 当我通过/values-v11/styles.xml切换到Theme.Holo时 <style name="Theme" parent="android:Theme.Holo"> 这意味着什么?可能,S是源位图的一个点(button drawable button.g
button.getBackground().setColorFilter(customColor, PorterDuff.Mode.MULTIPLY);
当我通过/values-v11/styles.xml切换到Theme.Holo时
<style name="Theme" parent="android:Theme.Holo">
这意味着什么?可能,S是源位图的一个点(button drawable button.getBackground()),而D是我的自定义颜色的一个“点”。。。如何从该公式复制新的变换颜色?这是否意味着新颜色N是:
[Na, Nr, Ng, Nb] = [Sa * Da, Sr * Dr, Sg * Dg, Sb * Db]
还是什么
更新:
我想:
button.getBackground().setColorFilter(some_Intermediate_Color, PorterDuff.Mode.MULTIPLY);
然后应用我在引入新全息主题之前使用的相同转换。为了计算这个中间色,我必须求解两个十六进制的丢番图方程,其中Na,Nc在区间[0,FF]内,m,n-是整数:
66*Na = F2 + 100*m; => Na = 23
99*Nc = E1 + 100*n; => Nc = 89
因此,中间色是#238989
不幸的是,我得到的中间色仍然没有得到想要的颜色,结果。。。我哪里错了?在这种情况下,源是customColor,目标是按钮的背景。您的公式是正确的。但是PorterDuff.Mode.MULITPLY是什么意思?
66*Na = F2 + 100*m; => Na = 23
99*Nc = E1 + 100*n; => Nc = 89