Example usage for android.graphics Color HSVToColor

List of usage examples for android.graphics Color HSVToColor

Introduction

In this page you can find the example usage for android.graphics Color HSVToColor.

Prototype

@ColorInt
public static int HSVToColor(@Size(3) float hsv[]) 

Source Link

Document

Convert HSV components to an ARGB color.

Usage

From source file:de.vanita5.twittnuker.view.ColorPickerView.java

private void drawAlphaPanel(final Canvas canvas) {

    if (!mShowAlphaPanel || mAlphaRect == null || mAlphaPattern == null)
        return;/*  w w  w.j a v  a  2s .  co  m*/

    final RectF rect = mAlphaRect;

    if (BORDER_WIDTH_PX > 0) {
        mBorderPaint.setColor(mBorderColor);
        canvas.drawRect(rect.left - BORDER_WIDTH_PX, rect.top - BORDER_WIDTH_PX, rect.right + BORDER_WIDTH_PX,
                rect.bottom + BORDER_WIDTH_PX, mBorderPaint);
    }

    mAlphaPattern.draw(canvas);

    final float[] hsv = new float[] { mHue, mSat, mVal };
    final int color = Color.HSVToColor(hsv);
    final int acolor = Color.HSVToColor(0, hsv);

    mAlphaShader = new LinearGradient(rect.left, rect.top, rect.right, rect.top, color, acolor, TileMode.CLAMP);

    mAlphaPaint.setShader(mAlphaShader);

    canvas.drawRect(rect, mAlphaPaint);

    if (mAlphaSliderText != null && mAlphaSliderText != "") {
        canvas.drawText(mAlphaSliderText, rect.centerX(), rect.centerY() + 4 * mDensity, mAlphaTextPaint);
    }

    final float rectWidth = 4 * mDensity / 2;

    final Point p = alphaToPoint(mAlpha);

    final RectF r = new RectF();
    r.left = p.x - rectWidth;
    r.right = p.x + rectWidth;
    r.top = rect.top - RECTANGLE_TRACKER_OFFSET;
    r.bottom = rect.bottom + RECTANGLE_TRACKER_OFFSET;

    canvas.drawRoundRect(r, 2, 2, mHueTrackerPaint);

}

From source file:com.skytree.epubtest.BookViewActivity.java

public int getDarkerColor(int color) {
    float[] hsv = new float[3];
    Color.colorToHSV(color, hsv);
    hsv[2] *= 0.8f; // value component
    int darker = Color.HSVToColor(hsv);
    return darker;
}

From source file:com.granita.tasks.ViewTaskFragment.java

public static int darkenColor(int color) {
    float[] hsv = new float[3];
    Color.colorToHSV(color, hsv);
    if (hsv[2] > 0.8) {
        hsv[2] = 0.8f + (hsv[2] - 0.8f) * 0.5f;
        color = Color.HSVToColor(hsv);
    }//from www.  ja va 2s.c o  m
    return color;
}

From source file:com.granita.tasks.ViewTaskFragment.java

public static int darkenColor2(int color) {
    float[] hsv = new float[3];
    Color.colorToHSV(color, hsv);
    hsv[2] = hsv[2] * 0.75f;/*from www  .j  av a 2 s  . c  om*/
    color = Color.HSVToColor(hsv);
    return color;
}

From source file:com.google.android.apps.muzei.settings.ChooseSourceFragment.java

public void updateSources() {
    mSelectedSource = null;//from  w  w w . jav a2  s .  co m
    Intent queryIntent = new Intent(ACTION_MUZEI_ART_SOURCE);
    PackageManager pm = getContext().getPackageManager();
    mSources.clear();
    List<ResolveInfo> resolveInfos = pm.queryIntentServices(queryIntent, PackageManager.GET_META_DATA);

    for (ResolveInfo ri : resolveInfos) {
        Source source = new Source();
        source.label = ri.loadLabel(pm).toString();
        source.icon = new BitmapDrawable(getResources(), generateSourceImage(ri.loadIcon(pm)));
        source.targetSdkVersion = ri.serviceInfo.applicationInfo.targetSdkVersion;
        source.componentName = new ComponentName(ri.serviceInfo.packageName, ri.serviceInfo.name);
        if (ri.serviceInfo.descriptionRes != 0) {
            try {
                Context packageContext = getContext()
                        .createPackageContext(source.componentName.getPackageName(), 0);
                Resources packageRes = packageContext.getResources();
                source.description = packageRes.getString(ri.serviceInfo.descriptionRes);
            } catch (PackageManager.NameNotFoundException | Resources.NotFoundException e) {
                Log.e(TAG, "Can't read package resources for source " + source.componentName);
            }
        }
        Bundle metaData = ri.serviceInfo.metaData;
        source.color = Color.WHITE;
        if (metaData != null) {
            String settingsActivity = metaData.getString("settingsActivity");
            if (!TextUtils.isEmpty(settingsActivity)) {
                source.settingsActivity = ComponentName
                        .unflattenFromString(ri.serviceInfo.packageName + "/" + settingsActivity);
            }

            String setupActivity = metaData.getString("setupActivity");
            if (!TextUtils.isEmpty(setupActivity)) {
                source.setupActivity = ComponentName
                        .unflattenFromString(ri.serviceInfo.packageName + "/" + setupActivity);
            }

            source.color = metaData.getInt("color", source.color);

            try {
                float[] hsv = new float[3];
                Color.colorToHSV(source.color, hsv);
                boolean adjust = false;
                if (hsv[2] < 0.8f) {
                    hsv[2] = 0.8f;
                    adjust = true;
                }
                if (hsv[1] > 0.4f) {
                    hsv[1] = 0.4f;
                    adjust = true;
                }
                if (adjust) {
                    source.color = Color.HSVToColor(hsv);
                }
                if (Color.alpha(source.color) != 255) {
                    source.color = Color.argb(255, Color.red(source.color), Color.green(source.color),
                            Color.blue(source.color));
                }
            } catch (IllegalArgumentException ignored) {
            }
        }

        mSources.add(source);
    }

    final String appPackage = getContext().getPackageName();
    Collections.sort(mSources, new Comparator<Source>() {
        @Override
        public int compare(Source s1, Source s2) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                boolean target1IsO = s1.targetSdkVersion >= Build.VERSION_CODES.O;
                boolean target2IsO = s2.targetSdkVersion >= Build.VERSION_CODES.O;
                if (target1IsO && !target2IsO) {
                    return 1;
                } else if (!target1IsO && target2IsO) {
                    return -1;
                }
            }
            String pn1 = s1.componentName.getPackageName();
            String pn2 = s2.componentName.getPackageName();
            if (!pn1.equals(pn2)) {
                if (appPackage.equals(pn1)) {
                    return -1;
                } else if (appPackage.equals(pn2)) {
                    return 1;
                }
            }
            return s1.label.compareTo(s2.label);
        }
    });

    redrawSources();
}

From source file:de.vanita5.twittnuker.view.ColorPickerView.java

private void drawSatValPanel(final Canvas canvas) {

    final RectF rect = mSatValRect;

    if (BORDER_WIDTH_PX > 0) {
        mBorderPaint.setColor(mBorderColor);
        canvas.drawRect(mDrawingRect.left, mDrawingRect.top, rect.right + BORDER_WIDTH_PX,
                rect.bottom + BORDER_WIDTH_PX, mBorderPaint);
    }/* w ww . j av  a 2  s . c o  m*/

    if (mValShader == null) {
        mValShader = new LinearGradient(rect.left, rect.top, rect.left, rect.bottom, 0xffffffff, 0xff000000,
                TileMode.CLAMP);
    }

    final int rgb = Color.HSVToColor(new float[] { mHue, 1f, 1f });

    mSatShader = new LinearGradient(rect.left, rect.top, rect.right, rect.top, 0xffffffff, rgb, TileMode.CLAMP);
    final ComposeShader mShader = new ComposeShader(mValShader, mSatShader, PorterDuff.Mode.MULTIPLY);
    mSatValPaint.setShader(mShader);

    canvas.drawRect(rect, mSatValPaint);

    final Point p = satValToPoint(mSat, mVal);

    mSatValTrackerPaint.setColor(0xff000000);
    canvas.drawCircle(p.x, p.y, PALETTE_CIRCLE_TRACKER_RADIUS - 1f * mDensity, mSatValTrackerPaint);

    mSatValTrackerPaint.setColor(0xffdddddd);
    canvas.drawCircle(p.x, p.y, PALETTE_CIRCLE_TRACKER_RADIUS, mSatValTrackerPaint);

}

From source file:com.granita.tasks.EditTaskFragment.java

private static int darkenColor(int color) {
    float[] hsv = new float[3];
    Color.colorToHSV(color, hsv);
    hsv[2] = hsv[2] * 0.75f;//from  ww  w .  j a v a 2s  .c  om
    color = Color.HSVToColor(hsv);
    return color;
}

From source file:info.tellmetime.TellmetimeActivity.java

/**
 * Processes touch events for FrameLayout overlaying whole activity.
 *
 * If the touch was not on the panel then it changes background color according to the touch
 * position as long as the touch event was recognized as a movement,
 * or toggles panel visibility if it was a tap.
 *
 * @return true if the touch event was consumed.
 *//*from   w  ww. ja v a 2 s.  c  om*/
@Override
public boolean onTouch(View view, MotionEvent event) {
    // Coordinates of current touch point.
    final float rawX = event.getRawX();
    final float rawY = event.getRawY();

    switch (MotionEventCompat.getActionMasked(event)) {
    case (MotionEvent.ACTION_DOWN):
        // This action signals that a new touch gesture begins, so we cache its starting point.
        mStartX = rawX;
        mStartY = rawY;

        // Schedule a Runnable to run in 1 second.
        mLongPressHandler.postDelayed(mLongPressed, 1000);

        return true;
    case (MotionEvent.ACTION_MOVE):
        // Distance between starting point and current one.
        final double distance = Math.sqrt(Math.pow(rawX - mStartX, 2) + Math.pow(rawY - mStartY, 2));

        if (distance > mTouchSlop) {
            // If the user exceeded the slop value, then we start to track the movement.
            isSlopped = true;

            // Cancel scheduled Runnable.
            mLongPressHandler.removeCallbacks(mLongPressed);

            if (mHider.isVisible()) {
                // Hide panel to present only the clock.
                mHider.hide();
            } else {
                if (mBackgroundMode != MODE_BACKGROUND_SOLID)
                    return true;

                // Change the background color according to the touch position.

                if (event.getPointerCount() > 1) {
                    // If the user is using more than one finger, then we change saturation.

                    // Saturation depends on top <-> bottom movement of second finger.
                    mHSV[1] = MotionEventCompat.getY(event, 1) / mScreenHeight;
                } else {
                    // If it's a single finger gesture, then we change hue and value.

                    // Hue depends on left <-> right movement.
                    mHSV[0] = (float) Math.floor(rawX / mScreenWidth * 360);
                    // Value depends on up <-> down movement.
                    mHSV[2] = rawY / mScreenHeight;
                }

                mBackgroundColor = Color.HSVToColor(mHSV);
                mSurface.setBackgroundColor(mBackgroundColor);
            }
        } else {
            // If required distance is not exceeded, we only unset the slop flag.
            isSlopped = false;
        }

        return true;
    case (MotionEvent.ACTION_UP):
        mLongPressHandler.removeCallbacks(mLongPressed);

        // This action ends every touch interaction, so if the event was just a tap,
        // i.e. distance hasn't exceed the slop value, then it concerns panel.

        if (!isSlopped && !wasModeToggled) {
            // If the touch gesture was just a tap then toggle panel visibility.
            mHider.toggle();
        }

        // As the gesture ended, we need to unset the slop and toggle flag.
        isSlopped = false;
        wasModeToggled = false;

        return true;
    case (MotionEvent.ACTION_POINTER_UP):
        // Action occurs when second or farther finger goes up.

        isSlopped = true;

        return true;
    default:
        return super.onTouchEvent(event);
    }
}

From source file:tv.piratemedia.lightcontroler.controller.java

private void setActionbarColor(int c) {
    mActionBarToolbar.setBackgroundColor(c);
    try {//from w ww.  j a va 2s .  c o  m
        tabs.setBackgroundColor(c);
    } catch (Exception e) {
        //do nothing
    }

    float[] hsv = new float[3];
    Color.colorToHSV(c, hsv);
    hsv[2] *= 0.8f; // value component
    c = Color.HSVToColor(hsv);

    drawer.setStatusBarBackgroundColor(c);

    //little hack to make the statusbar background redraw when called from another thread
    drawer.openDrawer();
    drawer.closeDrawer();
}

From source file:com.mikhaellopez.saveinsta.activity.MainActivity.java

private int darkerColor(int color) {
    float[] hsv = new float[3];
    Color.colorToHSV(color, hsv);
    hsv[2] *= 0.8f; // value component
    return Color.HSVToColor(hsv);
}