Android RadialGradient正在被破坏

时间:2014-02-18 20:08:46

标签: android android-drawable

我正在绘制一个径向渐变作为选择的发光效果。一切都在工作,直到我在渐变之上画了另一个圆圈。首先,这是我的渐变和代码:

径向渐变。请注意,大小和位置是动态设置的,因此这里的值没有意义:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval" >
    <gradient
        android:endColor="#0025AAE1"
        android:gradientRadius="0"
        android:startColor="#FF25AAE1"
        android:type="radial" />

    <size
        android:height="5dp"
        android:width="5dp" />
</shape>

现在是我的绘图代码。

在构造函数中初始化:

circle = (GradientDrawable)context.getResources().getDrawable(R.drawable.test_gradient);

绘图代码:     public void draw(Canvas canvas,Thumb thumb)     {         float x = thumb.getX();         float y = thumb.getY();

    paint.setColor(borderColor);
    canvas.drawCircle(x, y, radius, paint);

    paint.setColor(centerColor);
    canvas.drawCircle(x, y, radius - radiusBorder, paint);

    if (thumb.isSelected())
    {
        int circleRadius = radius + 10;
        circle.setGradientRadius(circleRadius);
        circle.setBounds((int)x - circleRadius, (int)y - circleRadius, (int)x + circleRadius, (int)y + circleRadius);
        circle.draw(canvas);

                    // This circle causes issues!
        paint.setColor(selectedCenterColor);
        canvas.drawCircle(x, y, radius - (radiusBorder * 2), paint);
    }
} 

如果问题drawCircle()行被注释掉,则渐变显示为我所期望的:  gradient is OK

当我在启用drawCircle()的情况下运行时,它显示为: enter image description here

渐变发生了什么变化?如何通过在其上面绘制其他东西来影响它?新绘制的圆小于渐变并且是一种纯色。我不明白这里会发生什么。

0 个答案:

没有答案