List of usage examples for android.graphics Color HSVToColor
@ColorInt public static int HSVToColor(@Size(3) float hsv[])
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); }