【问题标题】:Android Canvas GradientAndroid 画布渐变
【发布时间】:2016-01-27 13:12:01
【问题描述】:

我尝试在 Android 画布上绘制它,但我有问题...

  1. 为什么所有着色器结果都只有白色和黑色?没有颜色...

  2. 如何为两个以上的点 (x,y) 设置颜色?

  3. 在哪里可以找到显示简单组合使用的示例?

代码:

Shader1 = new LinearGradient(0, 0, 0,BarHeight,0xff696969 ,0xffffffff,   Shader.TileMode.CLAMP);
Shader2 = new LinearGradient(BarHeight/2, BarHeight/2, 0,34,0xf0696969 ,0xfff34f5f, Shader.TileMode.CLAMP);
ComposeShader mShader = new ComposeShader(Shader2, Shader1,  PorterDuff.Mode.MULTIPLY);
GraundPaint.setShader(mShader);
canvas.drawRoundRect(rectf, 0, 0, GraundPaint);

【问题讨论】:

    标签: android canvas gradient


    【解决方案1】:

    您可以使用LinearGradient的this constructor设置超过2个点,它采用颜色数组和对应的位置数组(0到1之间)。

    对于使用 LinearGradient 的简单示例,您可以查看here

    【讨论】:

    • 谢谢!我是新手,所以这是一个相当愚蠢的问题(
    • 很高兴能帮上忙,我认为没有愚蠢的问题 :)
    • 我有更多问题((我可以得到屏幕的宽度和高度,但不能在 OnDraw() 中?我试图在 OnDraw() 之前创建所有着色器(对象),但它有一些依赖于屏幕的宽度和高度..
    • 只要在 Stack Overflow 上搜索一下,就有很多 Android 问题。这可能有助于获取宽度和高度:stackoverflow.com/a/6652621/3160869 此外,如果您找不到您要查找的内容,您可以发布一个新的(单独的)问题。 Stack Overflow 旨在让其他人稍后轻松找到您的问题。
    猜你喜欢
    • 1970-01-01
    • 2011-04-29
    • 2014-03-19
    • 2021-09-18
    • 2019-01-26
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多