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 画布渐变的主要内容,如果未能解决你的问题,请参考以下文章