How to get accent color programmatically? How to get accent color programmatically? android android

How to get accent color programmatically?


You can fetch it from the current theme in this way:

private int fetchAccentColor() {    TypedValue typedValue = new TypedValue();    TypedArray a = mContext.obtainStyledAttributes(typedValue.data, new int[] { R.attr.colorAccent });    int color = a.getColor(0, 0);    a.recycle();    return color;}


This worked for me as well:

public static int getThemeAccentColor (final Context context) {    final TypedValue value = new TypedValue ();    context.getTheme ().resolveAttribute (R.attr.colorAccent, value, true);    return value.data;}


private static int getThemeAccentColor(Context context) {    int colorAttr;    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {        colorAttr = android.R.attr.colorAccent;    } else {        //Get colorAccent defined for AppCompat        colorAttr = context.getResources().getIdentifier("colorAccent", "attr", context.getPackageName());    }    TypedValue outValue = new TypedValue();    context.getTheme().resolveAttribute(colorAttr, outValue, true);    return outValue.data;}