Java tutorial
//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(); } }