android - 如何在 For 循环中添加随机颜色

标签 android for-loop

我有一个自定义饼图 View ,现在我正在使用

为 for 循环中的每个饼图设置随机颜色
color = Color.argb(100, r.nextInt(256), r.nextInt(256), r.nextInt(256)); 
pie.addItem(PieName, PieValue, color);

正如你可以想象的那样,我有时会得到奇怪的颜色,或者几乎相同的颜色。所以现在我正在考虑使用某些颜色,如何设置一些颜色,例如蓝色,绿色,红色,黄色......然后为 for 循环中的每个饼使用其中一种颜色?

最佳答案

Android 中已有非常有限的调色板(请参阅 here ),但即使这些也缺乏任何类型的收集界面。您有几个选择:

  1. 创建要使用的颜色列表,并通过随机偏移访问该列表。如果您正在寻找标准颜色集,请尝试 like this 。代码可能如下所示:

        ArrayList<Integer> randColors = new ArrayList<Integer>();
        randColors.add(Color.parseColor("#0000FF"));
    
        randColors.add(Color.parseColor("BlanchedAlmond"));
        randColors.add(Color.parseColor("MediumAquaMarine"));
    
  2. 以可预测的方式增加颜色。我在 Python 中编写过一次这段代码,但如果它对您有用,您可以轻松转换它:

        STEPS = 6
        BIG = 0x330000
        MED = 0x003300
        SMA = 0x000033
    
        count = 1
        num = 0x000000
        for k in range(0, STEPS):
            for j in range(0, STEPS):
                for i in range(0, STEPS):
                     num = ( k * BIG ) + ( j * MED ) + ( i * SMA )
                     print phex(num)
                     count += 1
    
        def phex(num):
            return "0x%0.6X" % num
    

关于android - 如何在 For 循环中添加随机颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20906250/

相关文章:

javascript - jQuery + 解析 : Functions from for loops

java - 循环的简写是否缓存可迭代的引用?

android - 在 onDestroy 方法中重新启动服务

android - 使用 OpenSL ES Android 同时播放多种音效

android - 致命异常 : main java. lang.IllegalStateException:ArrayAdapter 要求资源 ID 为 TextView

c++ - 在 C++ 中减慢滚动速度?

java - 安卓网络连接失败

android - android支持设计库提供的FAB如何添加阴影?

Python:为什么这段代码会执行?

javascript - 如何在代码中使用 For 循环?