Android开发 之 RadialGradient环形渲染

本文探讨了Android开发中如何利用RadialGradient进行环形渲染的详细步骤,通过实例代码解析关键技术和实现方法,为Android界面增添独特视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);//画一个容器,大的园
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值