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的意思是 在竖直和水平方向上重复,以镜像的方式显示,看效果: