diff options
Diffstat (limited to 'src/com/android/gallery3d/filtershow/colorpicker/ColorValueView.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/colorpicker/ColorValueView.java | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/src/com/android/gallery3d/filtershow/colorpicker/ColorValueView.java b/src/com/android/gallery3d/filtershow/colorpicker/ColorValueView.java deleted file mode 100644 index 13cb44bad..000000000 --- a/src/com/android/gallery3d/filtershow/colorpicker/ColorValueView.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * 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.android.gallery3d.filtershow.colorpicker; - -import android.content.Context; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.LinearGradient; -import android.graphics.Paint; -import android.graphics.RadialGradient; -import android.graphics.Shader; -import android.util.AttributeSet; -import android.util.DisplayMetrics; -import android.view.MotionEvent; -import android.view.View; - -import com.android.gallery3d.R; - -import java.util.ArrayList; - -public class ColorValueView extends View implements ColorListener { - - private float mRadius; - private float mWidth; - private Paint mBarPaint1; - private Paint mLinePaint1; - private Paint mLinePaint2; - private float mHeight; - private int mBgcolor = 0; - private Paint mDotPaint; - private float dotRadus; - private float mBorder; - - private float[] mHSVO = new float[4]; - private int mSliderColor; - private float mDotX; - private float mDotY = mBorder; - private final static float DOT_SIZE = ColorRectView.DOT_SIZE; - private final static float BORDER_SIZE = ColorRectView.DOT_SIZE; - - public ColorValueView(Context ctx, AttributeSet attrs) { - super(ctx, attrs); - DisplayMetrics metrics = ctx.getResources().getDisplayMetrics(); - float mDpToPix = metrics.density; - dotRadus = DOT_SIZE * mDpToPix; - mBorder = BORDER_SIZE * mDpToPix; - - mBarPaint1 = new Paint(); - - mDotPaint = new Paint(); - - mDotPaint.setStyle(Paint.Style.FILL); - mDotPaint.setColor(ctx.getResources().getColor(R.color.slider_dot_color)); - - mBarPaint1.setStyle(Paint.Style.FILL); - - mLinePaint1 = new Paint(); - mLinePaint1.setColor(Color.GRAY); - mLinePaint2 = new Paint(); - mSliderColor = ctx.getResources().getColor(R.color.slider_line_color); - mLinePaint2.setColor(mSliderColor); - mLinePaint2.setStrokeWidth(4); - } - - public boolean onDown(MotionEvent e) { - return true; - } - - public boolean onTouchEvent(MotionEvent event) { - float ox = mDotX; - float oy = mDotY; - - float x = event.getX(); - float y = event.getY(); - - mDotY = y; - - if (mDotY < mBorder) { - mDotY = mBorder; - } - - if (mDotY > mHeight - mBorder) { - mDotY = mHeight - mBorder; - } - mHSVO[2] = (mDotY - mBorder) / (mHeight - mBorder * 2); - notifyColorListeners(mHSVO); - setupButton(); - invalidate((int) (ox - dotRadus), (int) (oy - dotRadus), (int) (ox + dotRadus), - (int) (oy + dotRadus)); - invalidate((int) (mDotX - dotRadus), (int) (mDotY - dotRadus), (int) (mDotX + dotRadus), - (int) (mDotY + dotRadus)); - - return true; - } - - private void setupButton() { - float pos = mHSVO[2] * (mHeight - mBorder * 2); - mDotY = pos + mBorder; - - int[] colors3 = new int[] { - mSliderColor, mSliderColor, 0x66000000, 0 }; - RadialGradient g = new RadialGradient(mDotX, mDotY, dotRadus, colors3, new float[] { - 0, .3f, .31f, 1 }, Shader.TileMode.CLAMP); - mDotPaint.setShader(g); - } - - @Override - protected void onSizeChanged(int w, int h, int oldw, int oldh) { - mWidth = w; - mHeight = h; - mDotX = mWidth / 2; - updatePaint(); - setupButton(); - } - - private void updatePaint() { - float[] hsv = new float[] { - mHSVO[0], mHSVO[1], 0f }; - int color1 = Color.HSVToColor(hsv); - hsv[2] = 1; - int color2 = Color.HSVToColor(hsv); - - Shader sg = new LinearGradient(mBorder, mBorder, mBorder, mHeight - mBorder, color1, color2, - Shader.TileMode.CLAMP); - mBarPaint1.setShader(sg); - } - - @Override - protected void onDraw(Canvas canvas) { - super.onDraw(canvas); - canvas.drawColor(mBgcolor); - canvas.drawRect(mBorder, mBorder, mWidth - mBorder, mHeight - mBorder, mBarPaint1); - canvas.drawLine(mDotX, mDotY, mDotX, mHeight - mBorder, mLinePaint2); - canvas.drawLine(mDotX, mBorder, mDotX, mDotY, mLinePaint1); - if (mDotX != Float.NaN) { - canvas.drawCircle(mDotX, mDotY, dotRadus, mDotPaint); - } - } - - @Override - public void setColor(float[] hsvo) { - System.arraycopy(hsvo, 0, mHSVO, 0, mHSVO.length); - - float oy = mDotY; - updatePaint(); - setupButton(); - invalidate(); - - } - - ArrayList<ColorListener> mColorListeners = new ArrayList<ColorListener>(); - - public void notifyColorListeners(float[] hsv) { - for (ColorListener l : mColorListeners) { - l.setColor(hsv); - } - } - - public void addColorListener(ColorListener l) { - mColorListeners.add(l); - } - - public void removeColorListener(ColorListener l) { - mColorListeners.remove(l); - } -} |