Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
//License from project: Open Source License 

public class Main {
    /**
     * Returns the ARGB color with inverted alpha channel.
     *
     * @param argb Color in HEX format (either with or without alpha, e.g.
     *             #CCCCCC or #ffCCCCCC.
     * @return
     */
    public static String getColorWithInvertedAplha(String argb) {

        int[] components = getARGBComponents(argb);
        components[0] = 255 - components[0];

        return "#" + getTwoDigitHexString(components[0]) + getTwoDigitHexString(components[1])
                + getTwoDigitHexString(components[2]) + getTwoDigitHexString(components[3]);

    }

    /**
     * Return ARGB values in int array
     * @param argb Color in HEX format (either with or without alpha, e.g.
     *             #CCCCCC or #ffCCCCCC.
     * @return
     */
    private static int[] getARGBComponents(String argb) {

        if (argb.startsWith("#")) {
            argb = argb.replace("#", "");
        }

        int alpha = -1, red = -1, green = -1, blue = -1;

        if (argb.length() == 8) {
            alpha = Integer.parseInt(argb.substring(0, 2), 16);
            red = Integer.parseInt(argb.substring(2, 4), 16);
            green = Integer.parseInt(argb.substring(4, 6), 16);
            blue = Integer.parseInt(argb.substring(6, 8), 16);
        } else if (argb.length() == 6) {
            alpha = 255;
            red = Integer.parseInt(argb.substring(0, 2), 16);
            green = Integer.parseInt(argb.substring(2, 4), 16);
            blue = Integer.parseInt(argb.substring(4, 6), 16);
        }

        int[] components = { alpha, red, green, blue };

        return components;

    }

    private static String getTwoDigitHexString(int integer) {

        StringBuilder sb = new StringBuilder();
        sb.append(Integer.toHexString(integer));
        if (sb.length() < 2) {
            sb.insert(0, '0'); // pad with leading zero if needed
        }

        return sb.toString();

    }
}