小编Gab*_*ban的帖子

如何在画布中绘制具有径向渐变的圆?

我创建了一个圆形按钮,可以在调用函数时更改颜色.我想要的是创建另一个,创建相同的圆形按钮,但径向渐变从中间开始选择颜色,当你离开圆圈时,它会变为透明.

我使用在如何设置渐变样式来绘制对象时发布了一个类似的代码但是没有用.

我尝试的代码是这个porpuse是:

mPaint.setShader(new RadialGradient(0, 0, height/3, Color.BLACK, Color.TRANSPARENT, Shader.TileMode.MIRROR));
Run Code Online (Sandbox Code Playgroud)

以下类是我为圆形按钮创建的类.

public class ColorGradientCircleButton extends View{

private Paint mPaint;
private Paint   mBitmapPaint;
private Bitmap  mBitmap;
private Canvas  mCanvas;
private int width, height;

public ColorGradientCircleButton(Context context) {
    super(context);
    init();
}
public ColorGradientCircleButton(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();
}
public ColorGradientCircleButton(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init();
}
private void init() {
    mPaint = new Paint();
    mPaint.setColor(Color.BLACK);
    mPaint.setStrokeWidth(1);
    mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
    mBitmapPaint = new …
Run Code Online (Sandbox Code Playgroud)

android android-canvas android-view

14
推荐指数
1
解决办法
2万
查看次数

为什么我的开关不起作用?

我正在使用计时器(10秒钟)System.currentTimemillis.我有一个方法,每秒刷新10次以下代码:

Start是活动的开始时间,它在onCreate方法中被"询问".我知道这很Integer.parseInt(Long.toString(y))有效,因为当我这样做时,我会System.out.println(Integer.parseInt(Long.toString(y)));正确回报时间.

所以,我的问题是我不知道为什么swich不能正常工作.

long y=System.currentTimeMillis()-start;

switch (Integer.parseInt(Long.toString(y))) {           
    case 1000:
        time.setText("3");
        time.setAnimation(anim);
        break;

    case 2000:
        time.setText("2");
        time.setAnimation(anim);
        break;

    case 3000:
        time.setText("1");
        time.setAnimation(anim);
        break;

    case 4000:
        time.setText("GOOO!");
        time.setAnimation(anim);
        count.setVisibility(View.VISIBLE);
        cuenta = 0;
        count.setText("0");
        break;

    case 5000:
        time.setText("1");
        time.setAnimation(anim);
        break;

    case 6000:
        time.setText("2");
        time.setAnimation(anim);
        break;

    case 7000:
        time.setText("3");
        time.setAnimation(anim);
        break;

    case 8000:
        time.setText("4");
        time.setAnimation(anim);
        break;

    case 9000:
        time.setText("5");
        time.setAnimation(anim);
        break;

    case 10000:
        time.setText("Time!");
        time.setAnimation(anim);
        count.setVisibility(View.INVISIBLE);
        break;
}
Run Code Online (Sandbox Code Playgroud)

java switch-statement

0
推荐指数
1
解决办法
160
查看次数