1 package mhr.appandroid.views.colorpicker;
3 import mhr.appandroid.R;
4 import android.content.Context;
5 import android.graphics.Bitmap;
6 import android.graphics.BitmapFactory;
7 import android.graphics.Canvas;
8 import android.graphics.Color;
9 import android.graphics.ComposeShader;
10 import android.graphics.LinearGradient;
11 import android.graphics.Paint;
12 import android.graphics.PorterDuff;
13 import android.graphics.Shader;
14 import android.graphics.Shader.TileMode;
15 import android.graphics.drawable.StateListDrawable;
16 import android.os.Bundle;
17 import android.os.Parcelable;
18 import android.util.AttributeSet;
19 import android.view.MotionEvent;
20 import android.view.View;
21 import android.view.ViewParent;
22 import android.widget.Toast;
200 super(context, attrs);
204 public SVPickerView(Context context, AttributeSet attrs,
int defStyle) {
205 super(context, attrs, defStyle);
213 setLayerType(View.LAYER_TYPE_SOFTWARE, null);
214 cursorPressed = BitmapFactory.decodeResource(getResources(),
R.drawable.scrubber_control_pressed_bw);
215 cursorNormal = BitmapFactory.decodeResource(getResources(),
R.drawable.scrubber_control_normal_bw);
225 public void onMeasure(
int widthMeasureSpec,
int heightMeasureSpec) {
226 int width = MeasureSpec.getSize(widthMeasureSpec);
227 int height = MeasureSpec.getSize(heightMeasureSpec);
229 if (width < height) {
234 setMeasuredDimension(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
240 super.onSizeChanged(w, h, oldw, oldh);
265 Shader topShader =
new LinearGradient(
minX,
minY,
maxX,
minY, 0xffffffff, rgb, TileMode.CLAMP);
276 switch (ev.getAction()) {
277 case MotionEvent.ACTION_DOWN:
281 case MotionEvent.ACTION_UP:
290 }
else if (x >
maxX) {
297 }
else if (y >
maxY) {
305 switch (ev.getAction()) {
306 case MotionEvent.ACTION_DOWN:
309 case MotionEvent.ACTION_UP:
316 ViewParent parent = getParent();
317 if (parent != null) {
318 parent.requestDisallowInterceptTouchEvent(
true);