package cn.rongcloud.im.ui.widget.switchbutton;
import android.content.res.ColorStateList;
/**
* Generate thumb and background color state list use tintColor
* Created by kyle on 15/11/4.
*/
public class ColorUtils {
private static final int ENABLE_ATTR = android.R.attr.state_enabled;
private static final int CHECKED_ATTR = android.R.attr.state_checked;
private static final int PRESSED_ATTR = android.R.attr.state_pressed;
public static ColorStateList generateThumbColorWithTintColor(final int tintColor) {
int[][] states = new int[][] {
{ -ENABLE_ATTR, CHECKED_ATTR},
{ -ENABLE_ATTR},
{PRESSED_ATTR, -CHECKED_ATTR},
{PRESSED_ATTR, CHECKED_ATTR},
{CHECKED_ATTR},
{ -CHECKED_ATTR}
};
int[] colors = new int[] {
tintColor - 0xAA000000,
0xFFBABABA,
tintColor - 0x99000000,
tintColor - 0x99000000,
tintColor | 0xFF000000,
0xFFEEEEEE
};
return new ColorStateList(states, colors);
}
public static ColorStateList generateBackColorWithTintColor(final int tintColor) {
int[][] states = new int[][] {
{ -ENABLE_ATTR, CHECKED_ATTR},
{ -ENABLE_ATTR},
{CHECKED_ATTR, PRESSED_ATTR},
{ -CHECKED_ATTR, PRESSED_ATTR},
{CHECKED_ATTR},
{ -CHECKED_ATTR}
};
int[] colors = new int[] {
tintColor - 0xE1000000,
0x10000000,
tintColor - 0xD0000000,
0x20000000,
tintColor - 0xD0000000,
0x20000000
};
return new ColorStateList(states, colors);
}
}