package com.marcoscg.dialogsheet; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Color; import android.support.annotation.ColorInt; import android.util.TypedValue; /** * Created by @MarcosCGdev on 01/12/2017. */ class Utils { static boolean isColorLight(@ColorInt int color) { if (color == Color.BLACK) return false; else if (color == Color.WHITE || color == Color.TRANSPARENT) return true; final double darkness = 1 - (0.299 * Color.red(color) + 0.587 * Color.green(color) + 0.114 * Color.blue(color)) / 255; return darkness < 0.4; } @ColorInt static int adjustAlpha(@ColorInt int color, float factor) { int alpha = Math.round(Color.alpha(color) * factor); int red = Color.red(color); int green = Color.green(color); int blue = Color.blue(color); return Color.argb(alpha, red, green, blue); } @ColorInt static int getTextColor(int color) { return isColorLight(color) ? Color.parseColor("#DE000000") : Color.parseColor("#FFFFFFFF"); } @ColorInt static int getTextColorSec(int color) { return isColorLight(color) ? Color.parseColor("#8A000000") : Color.parseColor("#B3FFFFFF"); } @ColorInt static int getAttrColor(Context context, int attr) { TypedValue typedValue = new TypedValue(); TypedArray a = context.obtainStyledAttributes(typedValue.data, new int[]{attr}); int color = a.getColor(0, -1); a.recycle(); return color; } static int dpToPx(int dp) { return (int) (dp * Resources.getSystem().getDisplayMetrics().density); } }