java rgb自动生成数组渐变色

前台渐变色


image.png
.linear-break{ 
                float: right;
                width: 100px;
                height:20px; 
                margin-right: 10px;
                border-radius: 5px;
                background: -webkit-linear-gradient(left,rgb(0, 200, 0),rgb(30,144,255),rgb(255, 0, 0)) no-repeat;
            } 

后台渐变色方法 step为分多少个颜色


image.png
//查看字符串是否在数组中(双色渐变)
    public static List<String> getStepColorsByCondition(int[] beginColor, int[] endColor, int step) {
        List<String> list = new ArrayList();
        list.add(intAryToString(beginColor));
        if(step > 1){
            step = step - 1;
        }else{
            return list;
        }
        for (int i = 1; i <= step; i++) {
            StringBuffer newColor = new StringBuffer();
            for (int j = 0; j < beginColor.length; j++) {
                int bca = beginColor[j];
                int eca = endColor[j];
                //这个就是算法,RGB三色都按同样的算法
                int newnum = bca + (eca - bca) / step*i;
                newColor.append(newnum + ",");
            }
            list.add(newColor.deleteCharAt(newColor.length()-1).toString());
        }
        return list;
    }

    //查看字符串是否在数组中(三色渐变)
    public static List<String> getStepColorsByCondition(int[] beginColor, int[] midColor, int[] endColor, int step) {
        List<String> list = new ArrayList();
        list.add(intAryToString(beginColor));
        int num1;
        int num2;
        if(step%2 == 0){
            num1 = num2 = step/2;
        }else{
            num1 = step/2+1;
            num2 = step - num1;
        }

        if(num1 > 1){
            num1 = num1 - 1;
        }
        for (int i = 1; i <= num1; i++) {
            StringBuffer newColor = new StringBuffer();
            for (int j = 0; j < beginColor.length; j++) {
                int bca = beginColor[j];
                int eca = midColor[j];
                //这个就是算法,RGB三色都按同样的算法
                int newnum = bca + (eca - bca) / num1*i;
                newColor.append(newnum + ",");
            }
            list.add(newColor.deleteCharAt(newColor.length()-1).toString());
        }

        for (int i = 1; i <= num2; i++) {
            StringBuffer newColor = new StringBuffer();
            for (int j = 0; j < midColor.length; j++) {
                int bca = midColor[j];
                int eca = endColor[j];
                //这个就是算法,RGB三色都按同样的算法
                int newnum = bca + (eca - bca) / num2*i;
                newColor.append(newnum + ",");
            }
            list.add(newColor.deleteCharAt(newColor.length()-1).toString());
        }
        return list;
    }

    public static void main(String[] args) {
        int[] beginColor = {0,200,0};
        int[] midColor = {0,0,255};
        int[] endColor = {255,0,0};
        List<String> stepColorsBy = getStepColorsByCondition(beginColor, endColor, 3);
        System.out.println(JSON.toJSONString(stepColorsBy));

        List<String> stepColorsByCondition = getStepColorsByCondition(beginColor, midColor, endColor, 12);
        System.out.println(JSON.toJSONString(stepColorsByCondition));
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 人气超高的渐变色系列教程终于更新啦!这个系列文章的厉害在于,把大多数新手认为的色彩搭配靠灵感,全部用科学系统的方法...
    蓝湖产品设计协作阅读 1,066评论 8 17
  • 装修是一件大事,也是一件令大多数人头疼的人,很多人在装修的时候都会把装修交给装修公司做,所以,如何选择好的装修公司...
    黄凯001阅读 140评论 0 0
  • 最近一直在忙工作的事,现在基本定了。家里人说可以专心考虑找对象的事了,最好找个有房有车的。我心里说,我要自己买房子...
    不急不徐的小蜗牛阅读 292评论 0 0
  • 尊敬的各位评委老师:上午好! 富兰克林说“推动你的事业,不要让你的事业来推动你。”今天,我正是为推动我的事业而来的...
    红巧儿阅读 284评论 0 1
  • 想起昨晚上的事情仿佛就像是一场梦。在宝贝女儿哭哭闹闹了一整晚后,凌晨五点多,我实在忍不住了,摔门而去,想要离开这个...
    静一姑娘阅读 131评论 0 0