ImageView后旋转不能生成随机数

时间:2014-07-25 07:20:23

标签: java android post random imageview

我正在创建一个可以转动轮子的拨号器,我正面临一个问题,我想为dialer post方法生成随机浮点数,这样每次点击按钮时它们都可以有不同的速度。当我即将完成时,我从post方法得到了这个:不能在不同方法中定义的内部类中引用非final变量我希望可以在代码中进行一些更改每次单击按钮时,post方法给出的数字都不同。

按钮

dialer.post(new Runnable(){
     float i = (float) Math.random(); //Suppose to be final float i = (float) Math.random()
     @Override
     public void run() {
       dialer.post(new FlingRunnable(i));
     }
});

Fling Runnable

private class FlingRunnable implements Runnable {

    private float velocity;

    public FlingRunnable(float velocity) {
        this.velocity = velocity;
    }

    @Override
    public void run() {
        if (Math.abs(velocity) > 5 && allowRotating) {
            rotateDialer(velocity / 75);
            velocity /= 1.0666F;

            // post this instance again
            dialer.post(this);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

<强>问题:

float i = (float) Math.random();

您只是随机输入1值为0,因此结果将始终为零,

也可以将其放在范围

中,而不是将其放在run方法的范围之外

<强>样品:

dialer.post(new FlingRunnable(new Random.nextFloat() * you_val_to_random)); //if the you_val_to_random is 3 then it will generate a float range from 0-3

而不是使用Math.Random使用RandomnextFloat来为您生成随机浮点数