天天看點

LinearGradient使用

Paint p=new Paint();

LinearGradient lg=new LinearGradien(0,0,100,100,Color.RED,Color.BLUE,Shader.TileMode.MIRROR);  

參數一為漸變起初點坐标x位置,參數二為y軸位置,參數三和四分辨對應漸變終點,最後參數為平鋪方式,這裡設定為鏡像

Gradient是基于Shader類,是以我們通過Paint的setShader方法來設定這個漸變,代碼如下: mPaint.setShader(lg);

canvas.drawCicle(0,0,200,mPaint); //參數3為畫圓的半徑,類型為float型。

它除了定義開始顔色和結束顔色以外還可以定義,多種顔色組成的分段漸變效果

LinearGradient shader = new LinearGradient(0, 0, endX, endY, new int[]{startColor, midleColor, endColor},new float[]{0 , 0.5f, 1.0f}, TileMode.MIRROR);

其中參數new int[]{startColor, midleColor, endColor}是參與漸變效果的顔色集合,

其中參數new float[]{0 , 0.5f, 1.0f}是定義每個顔色處于的漸變相對位置,

這個參數可以為null,如果為null表示所有的顔色按順序均勻的分布