Android 画布渐变

Posted

技术标签:

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

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

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

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

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

代码:

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);

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

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

以上是关于Android 画布渐变的主要内容,如果未能解决你的问题,请参考以下文章

Android 绘图基础:Canvas画布——自定义View基础(绘制表盘矩形圆形弧渐变)

色带仅适用于 Android 4.0+

Android View — Gradient 渐变

怎么在android上面做出根据形状来渐变的效果

android中的圆形渐变

Android背景色内部渐变