Android學習之Shader渲染

2021-06-23 03:12:45 字數 1548 閱讀 4133

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 

x0:   漸變起初點座標x位置

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

x1:    漸變終點座標x位置

y1:    漸變終點座標y位置

colors:  漸變顏色陣列

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

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

Shader學習過程6 固定管線shader2

shader custom 002 secondtex secondtex 2d subshader blend srcalpha oneminussrcalpha zwrite off color 1,1,1,1 color color material lighting on separates...

從零開始學習OpenCL開發(四)shader

shader是類c的語言派生自c99標準99年ansi c接受的標準也是c最新的標準 work item和 work group相關函式 3vector 操作 4定址空間描述符寫在變數的最前面用於變數所處於的位址空間 5型別轉換 51convert型別轉換這是按照變數語意的型別轉換 2 as轉換這是...

(1)Android學習之Android 專案結構

宣告應用程式包 android allowbackup true android icon mipmap ic launcher 應用程式圖示 android label 應用程式標籤,即應用程式指定名稱 android roundicon mipmap ic launcher round andr...