Android學習筆記進階15之Shader渲染

來源:互聯網
上載者:User

Android提供的Shader類主要是渲染映像以及一些幾何圖形。

Shader有幾個直接子類:

BitmapShader    : 主要用來渲染映像

LinearGradient  :用來進行線性渲染

RadialGradient  : 用來進行環形渲染

SweepGradient   : 掃描漸層---圍繞一個中心點掃描漸層就像電影裡那種雷達掃描,用來梯度渲染。

ComposeShader   : 組合渲染,可以和其他幾個子類組合起來使用。

 

1   BitmapShader

渲染器著色一個位元影像作為一個紋理。位元影像可以重複或設定模式。

public   BitmapShader(Bitmap bitmap,Shader.TileMode tileX,Shader.TileMode tileY)

調用這個方法來產生一個畫有一個位元影像的渲染器(Shader)。

bitmap   在渲染器內使用的位元影像

tileX      The tiling mode for x to draw the bitmap in.   在位元影像上X方向花磚模式

tileY     The tiling mode for y to draw the bitmap in.    在位元影像上Y方向花磚模式

 

TileMode:(一共有三種)

CLAMP  :如果渲染器超出原始邊界範圍,會複製範圍內邊緣染色。

REPEAT :橫向和縱向的重複渲染器圖片,平鋪。

MIRROR :橫向和縱向的重複渲染器圖片,這個和REPEAT重複方式不一樣,他是以鏡像方式平鋪。

2 LinearGradient 

 

 

public LinearGradient(float x0, float y0, float x1, float y1, int[] colors, float[] positions, Shader.TileMode tile)

 

 X0:   漸層起初點座標x位置

y0:    漸層起初點座標y位置

x1:    漸層終點座標x位置

y1:    漸層終點座標y位置

colors:  漸層顏色數組

positions:這個也是一個數組用來指定顏色數組的相對位置 如果為null 就沿坡度線均勻分布

tile:平鋪方式

 

public LinearGradient(float x0, float y0, float x1, float y1, int color0, int color1, Shader.TileMode tile)

 

X0:       漸層起初點座標x位置

y0:        漸層起初點座標y位置

x1:        漸層終點座標x位置

y1:        漸層終點座標y位置

color0:  漸層開始顏色

color1:  漸層結束顏色

tile:    平鋪方式

 

 

LinearGradient是線性漸層,用法如下:

Gradient是基於Shader類,所以我們通過Paint的setShader方法來設定這個漸層,代碼如下:

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

Gradient是基於Shader類,所以我們通過Paint的setShader方法來設定這個漸層,代碼如下:

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

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.