List of usage examples for android.support.v4.graphics ColorUtils calculateContrast
public static double calculateContrast(@ColorInt int foreground, @ColorInt int background)
From source file:android.support.v7.app.MediaRouterThemeHelper.java
public static @ControllerColorType int getControllerColor(Context context, int style) { int primaryColor = getThemeColor(context, style, android.support.v7.appcompat.R.attr.colorPrimary); if (ColorUtils.calculateContrast(COLOR_WHITE_ON_DARK_BACKGROUND, primaryColor) >= MIN_CONTRAST) { return COLOR_WHITE_ON_DARK_BACKGROUND; }/*from ww w .j av a 2 s. co m*/ return COLOR_DARK_ON_LIGHT_BACKGROUND; }
From source file:android.support.v7.app.MediaRouterThemeHelper.java
public static int getButtonTextColor(Context context) { int primaryColor = getThemeColor(context, 0, android.support.v7.appcompat.R.attr.colorPrimary); int backgroundColor = getThemeColor(context, 0, android.R.attr.colorBackground); if (ColorUtils.calculateContrast(primaryColor, backgroundColor) < MIN_CONTRAST) { // Default to colorAccent if the contrast ratio is low. return getThemeColor(context, 0, android.support.v7.appcompat.R.attr.colorAccent); }/*from w ww . ja va2 s . co m*/ return primaryColor; }
From source file:com.android.launcher3.dynamicui.ExtractionUtils.java
/** @return Whether the foreground color is legible on the background color. */ private static boolean isLegible(int foreground, int background) { background = ColorUtils.setAlphaComponent(background, 255); return ColorUtils.calculateContrast(foreground, background) >= MIN_CONTRAST_RATIO; }
From source file:org.voidsink.anewjkuapp.fragment.CalendarFragment2.java
@Override public void onLoadFinished(Loader<Cursor> loader, Cursor data) { ArrayList<WeekViewEvent> events = mWeekViewLoader.getEvents(loader.getId()); events.clear();/*www .j a v a 2 s. co m*/ Account mAccount = AppUtils.getAccount(getContext()); if (mAccount != null) { // fetch calendar colors final SparseIntArray mColors = new SparseIntArray(); ContentResolver cr = getContext().getContentResolver(); Cursor cursor = cr.query(CalendarContractWrapper.Calendars.CONTENT_URI(), new String[] { CalendarContractWrapper.Calendars._ID(), CalendarContractWrapper.Calendars.CALENDAR_COLOR() }, null, null, null); if (cursor != null) { while (cursor.moveToNext()) { int color = cursor.getInt(1); double lastContrast = ColorUtils.calculateContrast(color, mWeekView.getEventTextColor()); //Log.d(TAG, String.format("color=%d %d %d, contrast=%f", Color.red(color), Color.green(color), Color.blue(color), lastContrast)); while (lastContrast < 1.6) { float[] hsv = new float[3]; Color.colorToHSV(color, hsv); hsv[2] = Math.max(0f, hsv[2] - 0.033f); // darken color = Color.HSVToColor(hsv); lastContrast = ColorUtils.calculateContrast(color, mWeekView.getEventTextColor()); //Log.d(TAG, String.format("new color=%d %d %d, contrast=%f", Color.red(color), Color.green(color), Color.blue(color), lastContrast)); if (hsv[2] == 0) break; } mColors.put(cursor.getInt(0), color); } cursor.close(); } if (data != null) { data.moveToFirst(); data.moveToPrevious(); while (data.moveToNext()) { boolean allDay = data.getInt(CalendarUtils.COLUMN_EVENT_ALL_DAY) == 1; Calendar startTime = Calendar.getInstance(); if (allDay) { startTime.setTimeZone(TimeZone.getTimeZone("UTC")); } startTime.setTimeInMillis(data.getLong(CalendarUtils.COLUMN_EVENT_DTSTART)); Calendar endTime = Calendar.getInstance(); if (allDay) { endTime.setTimeZone(TimeZone.getTimeZone("UTC")); } endTime.setTimeInMillis(data.getLong(CalendarUtils.COLUMN_EVENT_DTEND)); if (allDay && endTime.getTimeInMillis() % DateUtils.DAY_IN_MILLIS == 0) { endTime.add(Calendar.MILLISECOND, -1); } WeekViewEvent event = new WeekViewEvent(data.getLong(CalendarUtils.COLUMN_EVENT_ID), data.getString(CalendarUtils.COLUMN_EVENT_TITLE), data.getString(CalendarUtils.COLUMN_EVENT_LOCATION), startTime, endTime, allDay); event.setColor(mColors.get(data.getInt(CalendarUtils.COLUMN_EVENT_CAL_ID))); events.add(event); } } } mWeekView.notifyDatasetChanged(); }