gpt4 book ai didi

android - ComposeShader中的PorterDuff.Mode.MULTIPLY无法正常工作

转载 作者:太空狗 更新时间:2023-10-29 13:14:59 26 4
gpt4 key购买 nike

我想在我的应用程序中实现调色板。这是主要的OnDraw方法。

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int h = canvas.getHeight();
int w = canvas.getWidth();
if (paint == null) {
paint = new Paint();
luar = new LinearGradient(0.f, 0.f, 0.f, h, 0xffffffff, 0xff000000, TileMode.CLAMP);
}
int rgb = Color.HSVToColor(color);
Shader dalam = new LinearGradient(0.f, 0.f, w, 0.f, 0xffffffff, rgb, TileMode.CLAMP);
ComposeShader shader = new ComposeShader( luar, dalam, PorterDuff.Mode.MULTIPLY);
paint.setShader(shader);
canvas.drawRect(0.f, 0.f, w, h, paint);
}

但是, ComposeShader shader似乎不起作用。
也就是说,
ComposeShader shader = new ComposeShader( dalam, luar, PorterDuff.Mode.MULTIPLY);

仅显示垂直渐变。如果我改变参数:
ComposeShader shader = new ComposeShader( luar, dalam,  PorterDuff.Mode.MULTIPLY);

它显示水平梯度。不要乘法!为什么?

最佳答案

我也有同样的问题。但现在可以了。在XML资源中插入android:layerType="software"作为该视图的属性。

关于android - ComposeShader中的PorterDuff.Mode.MULTIPLY无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35826800/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com