水平LinearGradient与android

这一定是一个容易的,但我真的很茫然…下面的代码绘制一个线性渐变从左到右,从白色到黑色的矩形,

int x1 = 0, y1 = 0, x2 = 100, y2 = 40; Shader shader = new LinearGradient(x1, y1, x2, y2, Color.WHITE, Color.BLACK, TileMode.CLAMP); Paint paint = new Paint(); paint.setShader(shader); canvas.drawRect(new RectF(x1, y1, x2, y2), paint); 

好的。 现在我想要做的是将这个渐变变成一个水平的渐变,以便颜色从白色变成黑色,从上到下。 我试图做的是补充:

 Matrix trans = new Matrix(); trans.setRotate(90); shader.setLocalMatrix(trans); 

而是梯度是在一个有趣的天使,或者只有一个单一的颜色…我也试图用各种方式玩渐变的坐标(想想也许他们应该改变),无济于事。 我错过了什么?

Related of "水平LinearGradient与android"

不是我已经做了很多的android编码,但你所需要做的只是:

 int x1 = 0, y1 = 0, x2 = 0, y2 = 40; 

所以x不会改变只有y的梯度。

所以基本上:

 Shader shader = new LinearGradient(0, 0, 0, 40, Color.WHITE, Color.BLACK, TileMode.CLAMP); Paint paint = new Paint(); paint.setShader(shader); canvas.drawRect(new RectF(0, 0, 100, 40), paint);