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

2021-09-20 10:07:49 字數 3713 閱讀 7981

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  :如果渲染器超出原始邊界範圍,會複製範圍內邊緣染色。

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型。

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  :如果渲染器超出原始邊界範圍,會複製範圍內邊緣染色。

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型。

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

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!android提供的shader類主要是渲染影象以及一些幾何圖形。shader有幾個直接子類 bitmapshader 主要用來渲染影象 lineargradient 用來進行線性渲染 radialgradient 用來進行環形渲染 sweepgr...

《Android 4 高階程式設計》學習筆記

簡介 主要記錄看 android 4 高階程式設計 的一些心得和新學到的東西 1 android應用程式的型別 1 前台應用程式 主要指activity之類可以直接與使用者互動介面 2 後台應用程式 主要指service和broadcastreceiver之類的在後台執行並且沒有介面的程式 3 間歇...

Android學習筆記高階十之Matrix錯切變換

剛開始我也不懂啥叫錯切變換,一看效果圖你就恍然大悟。對影象的錯切變換做個總結 x x0 b y0 y d x0 y0 與之對應的方法是 matrix matrix new matrix matrix.setskew 0.0f,0.5f 再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默...