android.graphics中提供了有關(guān)Gradient類,包含LinearGradient線性漸變、 RadialGradient徑向漸變和SweepGradient梯度漸變,它們的繼承自android.graphics.Shader。
LinearGradient(float x0, float y0, float x1, float y1, int[] colors, float[] positions, Shader.TileMode tile)LinearGradient(float x0, float y0, float x1, float y1, int color0, int color1, Shader.TileMode tile)
參數(shù) | 說明 |
x0 | 漸變線起點(diǎn)的x坐標(biāo) |
y0 | 漸變線起點(diǎn)的y坐標(biāo) |
x1 | 漸變線末端的x坐標(biāo) |
y1 | 漸變線末端的y坐標(biāo) |
colors | 沿著漸變線分布的顏色數(shù)組 |
color0 | 漸變線開始處的顏色 |
color1 | 漸變線末端的顏色 |
positions | 顏色數(shù)組中每個對應(yīng)顏色的相對位置[0,1]。如果為null,則顏色沿線均勻分布 |
tile | 著色器平鋪模式 |
Paint paint =new Paint();//兩個坐標(biāo)形成變量,規(guī)定了漸變的方向和間距大小,著色器為鏡像LinearGradient linearGradient =new LinearGradient(0,0,200,0, Color.RED,Color.BLUE, Shader.TileMode.MIRROR);paint.setShader(linearGradient);paint.setStrokeWidth(50);canvas.drawLine(0,getMeasuredHeight()/2,getMeasuredWidth(),getMeasuredHeight()/2, paint);
圖片
RadialGradient(float x, float y, float radius, int[] colors, float[] positions, Shader.TileMode tile)RadialGradient(float x, float y, float radius, int color0, int color1, Shader.TileMode tile)
參數(shù) | 說明 |
x | 半徑中心的x坐標(biāo) |
y | 半徑中心的y坐標(biāo) |
radius | 漸變的圓的半徑 |
colors | 顏色分布在圓的中心和邊緣之間 |
color0 | 圓圈中心的顏色 |
color1 | 圓圈邊緣的顏色 |
positions | 顏色數(shù)組中每個對應(yīng)顏色的相對位置[0,1]。如果為null,則顏色沿線均勻分布 |
tile | 著色器平鋪模式 |
paint =new Paint();radialGradient =new RadialGradient(240,360,200, new int[]{Color.BLUE, Color.GREEN, Color.RED },null, Shader.TileMode.CLAMP);paint.setShader(radialGradient);canvas.drawCircle(240,360,200,paint);
圖片
SweepGradient(float x, float y, int[] colors, float[] positions)SweepGradient(float x, float y, int color0, int color1)
參數(shù) | 說明 |
x | 中心的x坐標(biāo) |
y | 中心的y坐標(biāo) |
colors | 顏色分布在中心周圍,陣列中必須至少有2種顏色 |
color0 | 掃描開始時(shí)使用的顏色 |
color1 | 掃描結(jié)束時(shí)使用的顏色 |
positions | 顏色數(shù)組中每個對應(yīng)顏色的相對位置[0,1]。如果為null,則顏色沿線均勻分布 |
paint =new Paint();int[] colors = new int[]{Color.GREEN, Color.GREEN, Color.BLUE, Color.RED, Color.RED};sweepGradient = new SweepGradient(240, 360,colors,null);paint.setShader(sweepGradient);canvas.drawCircle(x,y,200,paint);
圖片
本文鏈接:http://www.www897cc.com/showinfo-26-62356-0.htmlAndroid開發(fā)之漸變色,你學(xué)會了嗎?
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com