標籤:shader android 源碼 效果
TileMode是一個枚舉類,位於android.graphics.Shader類裡面
android源碼
public enum TileMode { /** * replicate the edge color if the shader draws outside of its * original bounds */ CLAMP (0), /** * repeat the shader‘s image horizontally and vertically */ REPEAT (1), /** * repeat the shader‘s image horizontally and vertically, alternating * mirror images so that adjacent images always seam */ MIRROR (2); TileMode(int nativeInt) { this.nativeInt = nativeInt; } final int nativeInt; }
今天主要測試這幾個屬性的效果。先將部分測試代碼貼出來:
private void drawTextRadial(Canvas canvas, RectF rectF) { canvas.save(); float centerX = rectF.centerX(); float centerY = rectF.centerY(); float radius = rectF.height(); RadialGradient gradient = new RadialGradient(centerX, centerY, radius, Color.GREEN, Color.RED, TileMode.CLAMP); Paint paint = new Paint(); paint.setAntiAlias(true); paint.setStyle(Paint.Style.FILL); paint.setTextSize(TEXTSIZE); paint.setFakeBoldText(true); paint.setShader(gradient); canvas.drawText(mText, rectF.left, rectF.bottom, paint); canvas.restore(); }
CLAMP看意思是 如果超出規定的地區就重複邊緣的效果,看效果:
REPEAT的意思是 在豎直和水平方向上重複,看效果:
MIRROR的意思是 在豎直和水平方向上重複,交替的顯示(翻譯的貌似不對)看效果:
android TileMode效果 水波紋效果 環形漸層