1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /*
- * Copyright (C) 2016 Jared Rummler
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
- package com.jaredrummler.materialspinner;
- import android.content.Context;
- import android.graphics.Color;
- import android.graphics.drawable.Drawable;
- import android.os.Build;
- import android.view.View;
- final class Utils {
- /**
- * Darkens a color by a given factor.
- *
- * @param color the color to darken
- * @param factor The factor to darken the color.
- * @return darker version of specified color.
- */
- static int darker(int color, float factor) {
- return Color.argb(Color.alpha(color), Math.max((int) (Color.red(color) * factor), 0),
- Math.max((int) (Color.green(color) * factor), 0), Math.max((int) (Color.blue(color) * factor), 0));
- }
- /**
- * Lightens a color by a given factor.
- *
- * @param color The color to lighten
- * @param factor The factor to lighten the color. 0 will make the color unchanged. 1 will make the
- * color white.
- * @return lighter version of the specified color.
- */
- static int lighter(int color, float factor) {
- int red = (int) ((Color.red(color) * (1 - factor) / 255 + factor) * 255);
- int green = (int) ((Color.green(color) * (1 - factor) / 255 + factor) * 255);
- int blue = (int) ((Color.blue(color) * (1 - factor) / 255 + factor) * 255);
- return Color.argb(Color.alpha(color), red, green, blue);
- }
- /**
- * Check if layout direction is RTL
- *
- * @param context the current context
- * @return {@code true} if the layout direction is right-to-left
- */
- static boolean isRtl(Context context) {
- return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1
- && context.getResources().getConfiguration().getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
- }
- /**
- * Return a drawable object associated with a particular resource ID.
- *
- * <p>Starting in {@link android.os.Build.VERSION_CODES#LOLLIPOP}, the returned drawable will be styled for the
- * specified Context's theme.</p>
- *
- * @param id The desired resource identifier, as generated by the aapt tool.
- * This integer encodes the package, type, and resource entry.
- * The value 0 is an invalid identifier.
- * @return Drawable An object that can be used to draw this resource.
- */
- static Drawable getDrawable(Context context, int id) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- return context.getDrawable(id);
- }
- return context.getResources().getDrawable(id);
- }
- }
|