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 再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默...