0

我有一个 iPhone 版本的应用程序,它使用一些代码来设置颜色。

((rand() % 176) * 80) / 256.0f

我是新手,objective c所以我无法弄清楚这是如何工作的。我想在Java.

在 Java 中,我们通常使用Random(). 我想如何使用来实现上述功能Random r = Random();

4

2 回答 2

2

在 Android 中,我首先会初始化一个变量rand = new Random()。然后我会把你的表达写成:

rand.nextInt(176) / 3.2f

(请注意。)每次我需要一种新颜色时,80 / 256.0 == 1 / 3.2我只会为rand一次分配一个值并重用同一个对象。Random

经过一些粗略的工作,您的原始代码似乎只是一种计算均匀分布在 0 和 55.0f 之间的随机浮点值的奇特方式。因此,做同样事情的一个更简单的方法是:

rand.nextFloat(55)

唯一的缺点是它与原始代码不太相似(尽管它的行为相同)。

于 2012-08-30T05:01:29.780 回答
1

Java中等效的单行代码是:

((new Random().nextInt() % 176) * 80) / 256.0f;

更多关于JavaDoc上的随机类

Random显然你不应该每次都创建一个新实例。

Random r = new Random();
// call r.nextInt() each time you need a new random integer
double color = ((r.nextInt() % 176) * 80) / 256.0f;
于 2012-08-30T04:45:33.933 回答