val originalColour: Int = primaryColor
val generatedColor = ColorUtil.generateTransparentColor(originalColour, 0.5)
view.setBackgroundColor(generatedColor)
创建颜色生成器辅助对象
object ColorUtil {
fun generateTransparentColor(color: Int, alpha: Double?): Int {
val defaultAlpha = 255 // (0 - Invisible / 255 - Max visibility)
val colorAlpha = alpha?.times(defaultAlpha)?.roundToInt() ?: defaultAlpha
return ColorUtils.setAlphaComponent(color, colorAlpha)
}
}
8条答案
按热度按时间mpgws1up1#
如果使用支持库,则可以用途:
如果您不使用支持库,则从其源代码中获取的一行解决方案为:
mzsu5hc02#
当然......看看颜色,它有一个函数:
返回alpha、红、绿色、蓝分量的color-int。
所以你的RGB值可以是静态的,你只需要增加alpha值就可以得到一个新的透明版本的颜色。
zdwk9cvp3#
您好,您可以使用:
android.support.v4.graphics.ColorUtils#setAlphaComponent
注意:这里的α是从0到255,而不是基于%。
也有其他实用的方法,如合同和光度计算在那里。
问候
o4hqfura4#
尝试以下代码
如果颜色编码具有α,则
a0x5cqrl5#
从上面的答案我创建了一个方法来做到这一点:
还值得注意的是,可以将其更改为如下所示的扩展方法
关于alpha值,从MSDN Color.FromArgb开始:
备注
若要创建不透明颜色,请将alpha设置为255。若要创建半透明颜色,请将alpha设置为1到254之间的任意值。
cs7cruho6#
我使用扩展函数。
也可以使用
ColorUtils
3pmvbmvn7#
在使用
androidx.compose.ui.graphics.Color
的排版领域中,可以只使用copy-method:uqjltbpv8#
您可以创建一个颜色助手,它返回相同的颜色与应用阿尔法。- * 让我们说,你想改变可见性从0.0到1.0(双)*
创建颜色生成器辅助对象