您的位置:首页 > 移动开发 > Android开发

Android开发 之 RadialGradient环形渲染

2017-07-16 18:25 309 查看

RadialGradient环形渲染

继承关系
java.lang.Object
android.graphics.Shader
android.graphics.RadialGradient


构造
public RadialGradient(float x, float y, float radius, int[] colors, float[] positions,Shader.TileMode tile)
float x:  圆心X坐标
float y:  圆心Y坐标
float radius: 半径
int[] colors:  渲染颜色数组
floate[] positions: 相对位置数组,可为null,  若为null,可为null,颜色沿渐变线均匀分布
Shader.TileMode tile:渲染器平铺模式

public RadialGradient(float x, float y, float radius, int color0, int color1,Shader.TileMode tile)
float x:  圆心X坐标
float y:  圆心Y坐标
float radius: 半径
int color0: 圆心颜色
int color1: 圆边缘颜色
Shader.TileMode tile:渲染器平铺模式


效果图



代码:
public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RadialGradientView radialGradientView = new RadialGradientView(this);
setContentView(radialGradientView);
}
public class RadialGradientView extends View {

Paint mPaint = null;
// 环形渐变渲染
Shader mRadialGradient = null;
public RadialGradientView(Context context) {
super(context);
//1.圆心X坐标2.Y坐标3.半径 4.颜色数组 5.相对位置数组,可为null 6.渲染器平铺模式
mRadialGradient = new RadialGradient(240, 240, 200, new int[] {
Color.YELLOW, Color.GREEN, Color.TRANSPARENT, Color.RED }, null,
Shader.TileMode.REPEAT);
mPaint = new Paint();
}
public RadialGradientView(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
protected void onDraw(Canvas canvas) {
// 绘制环形渐变
mPaint.setShader(mRadialGradient);
// 第一个,第二个参数表示圆心坐标
// 第三个参数表示半径
canvas.drawCircle(500, 500, 400, mPaint);//画一个容器,大的园
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: