App

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
mhr.appandroid.views.colorpicker.SVPickerView Class Reference

Třídá pro výběr Saturation a Value pro zadané Hue, v podstatě 2D SeekBar. More...

Inheritance diagram for mhr.appandroid.views.colorpicker.SVPickerView:

## Classes
interface | OnSVPickerChangeListener
| Interface pro posluchače událostí, obdoba interface pro události SeekBaru. More...

## Public Member Functions
void | setOnSVChangedListener (OnSVPickerChangeListener listener)
| Nastaví posluchače událostí
float | getHue ()
| Vrátí Hue v androidím formátu.
void | setHue (float hue)
| Nastaví Hue v androidím formátu.
int | getColor ()
| Vrátí vybranou barvu v androidím formátu.
void | getColor (float[] vals)
| Do pole vals uloží HSV hodnoty vybrané barvy v androidím formátu.
void | setColor (int color)
| Nastavý vybranou barvu na color (androidí formát)
void | setColor (float[] hsvColor)
| Nastaví vybranou barvu na hsvColor, která je v androidím formátu.
float | getSaturation ()
| Vrátí Saturation vybrané barvy v androidím formátu.
void | setSaturation (float saturation)
| Nastaví Saturation vybrané barvy.
float | getValue ()
| Vrátí Value vybrané barvy.
void | setValue (float value)
| Nastaví value vybrané barvy.
| SVPickerView (Context context)
| SVPickerView (Context context, AttributeSet attrs)
| SVPickerView (Context context, AttributeSet attrs, int defStyle)
void | onMeasure (int widthMeasureSpec, int heightMeasureSpec)
boolean | onTouchEvent (MotionEvent ev)
| Zpracovává vstup od uživatele, zpracovává pouze jeden hlavní dotek.

## Protected Member Functions
void | init ()
| Provede inicializaci celého View.
void | onSizeChanged (int w, int h, int oldw, int oldh)
| Voláno v okamžiku, kdy view dostane rozměry.
void | onDraw (Canvas canvas)
| Provádí vykreslení dle stavu.

## Protected Attributes
Bitmap | cursor
| Reference na Scrubber ukazující vybrané místo.
Bitmap | cursorPressed
| Drží referenci na Scrubber, který se použije pro indikaci vybraného místa, pokud uživatel interaguje s Pickerem.
Bitmap | cursorNormal
| Drží referenci na Scrubber, který se použije pro indikaci vybraného místa, pokud uživatel neinteraguje s Pickerem.
StateListDrawable | drCursor
| Není deprecated, ale je to jiný přístup... Tento přistup využívají SeekBary, lze takto zařídit kompatibilita s nimi pro náročnější stylování.
float | cursorX
| Aktuální x-ová souřadnice, která určuje, odkud se má vykreslovat cursor.
int | minX
| Minimální x-ová souřadnice, která ještě spadá do výběrové oblasi - představuje mez pro x-ovou souřadnici, která představuje vstup od uživatele.
int | maxX
| Analogie k minX.
int | lengthX
| Představuje vztažnou šířku pro výpočet S a V, délka oblasti gradientu.
float | cursorY
| Analogie k cursorY.
int | minY
| Analogie k minX.
int | maxY
| Analogie k maxX.
int | lengthY
| Analogie k lengthX.
int | margin
| Okraj okolo oblasti vzorníku - aby kurzor v rohu nebyl ořezaný - půlka jeho šířky.
Paint | paint
| Paint pouzivany ke kresleni gradientu.
Shader | baseShader
| Černobílý shader.
Shader | finalShader
| Složený shader, který se použije k vykreslování, po nastavení hue se nastavi na null, což znamená, že se při vykreslování musí znovu vytvořit;.
float[] | actualColor = { 0.0f, 0.0f, 0.0f }
| Barva, která je aktuálně vybraná, jako HSV v androidím formátu.
float[] | fullColor = { 0.0f, 1.0f, 1.0f }
| Barva jako HSV, 0-360, 0-1, 0-1 NENI VYBRANA BARVA, ALE BARVA V PRAVEM HORNIM ROHU PICKERU - max. Value a max. Saturation.
OnSVPickerChangeListener | listener = null
| Listener pro události.

## Detailed Description

Třídá pro výběr Saturation a Value pro zadané Hue, v podstatě 2D SeekBar.

Kód pro nastavení shaderů pro vzorník je převzat z http://code.google.com/p/android-color-picker/ Jestli však barvy opravdu odpovídají nebylo testováno. Každopádně je to asi nejlepší a nejrychlejší implementace na internetu.

Definition at line 32 of file SVPickerView.java.

## Constructor & Destructor Documentation

mhr.appandroid.views.colorpicker.SVPickerView.SVPickerView | ( | Context | context | ) |
| inline

Definition at line 194 of file SVPickerView.java.

{
super(context);
init();
}

mhr.appandroid.views.colorpicker.SVPickerView.SVPickerView | ( | Context | context,
|  | AttributeSet | attrs
| ) |  |
| inline

Definition at line 199 of file SVPickerView.java.

{
super(context, attrs);
init();
}

mhr.appandroid.views.colorpicker.SVPickerView.SVPickerView | ( | Context | context,
|  | AttributeSet | attrs,
|  | int | defStyle
| ) |  |
| inline

Definition at line 204 of file SVPickerView.java.

{
super(context, attrs, defStyle);
init();
}

## Member Function Documentation

int mhr.appandroid.views.colorpicker.SVPickerView.getColor | ( |  | ) |
| inline

Vrátí vybranou barvu v androidím formátu.

Returns

Definition at line 114 of file SVPickerView.java.

{
return Color.HSVToColor(actualColor);
}

void mhr.appandroid.views.colorpicker.SVPickerView.getColor | ( | float[] | vals | ) |
| inline

Do pole vals uloží HSV hodnoty vybrané barvy v androidím formátu.

Parameters

  vals |

Definition at line 122 of file SVPickerView.java.

{
vals[0] = actualColor[0];
vals[1] = actualColor[1];
vals[2] = actualColor[2];
}

float mhr.appandroid.views.colorpicker.SVPickerView.getHue | ( |  | ) |
| inline

Vrátí Hue v androidím formátu.

Returns

Definition at line 95 of file SVPickerView.java.

{
return actualColor[0];
}

float mhr.appandroid.views.colorpicker.SVPickerView.getSaturation | ( |  | ) |
| inline

Vrátí Saturation vybrané barvy v androidím formátu.

Returns

Definition at line 160 of file SVPickerView.java.

{
return actualColor[1];
}

float mhr.appandroid.views.colorpicker.SVPickerView.getValue | ( |  | ) |
| inline

Vrátí Value vybrané barvy.

Returns

Definition at line 178 of file SVPickerView.java.

{
return actualColor[2];
}

void mhr.appandroid.views.colorpicker.SVPickerView.init | ( |  | ) |
| inlineprotected

Provede inicializaci celého View.

Definition at line 212 of file SVPickerView.java.

{
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
cursorPressed = BitmapFactory.decodeResource(getResources(), R.drawable.scrubber_control_pressed_bw);
cursorNormal = BitmapFactory.decodeResource(getResources(), R.drawable.scrubber_control_normal_bw);
cursor = cursorNormal;
margin = cursor.getWidth() / 2;
paint = new Paint();
// drCursor = (StateListDrawable) getResources().getDrawable(R.drawable.bw_scrubber);
// drCursor.setState(new int[] { android.R.attr.state_enabled });
// margin = drCursor.getIntrinsicWidth() / 2;
}

void mhr.appandroid.views.colorpicker.SVPickerView.onDraw | ( | Canvas | canvas | ) |
| inlineprotected

Provádí vykreslení dle stavu.

Definition at line 262 of file SVPickerView.java.

{
if (finalShader == null) {
int rgb = Color.HSVToColor(fullColor);
Shader topShader = new LinearGradient(minX, minY, maxX, minY, 0xffffffff, rgb, TileMode.CLAMP);
finalShader = new ComposeShader(baseShader, topShader, PorterDuff.Mode.MULTIPLY);
paint.setShader(finalShader);
}
canvas.drawRect(minX, minY, maxX, maxY, paint);
canvas.drawBitmap(cursor, cursorX, cursorY, null);
}

void mhr.appandroid.views.colorpicker.SVPickerView.onMeasure | ( | int | widthMeasureSpec,
|  | int | heightMeasureSpec
| ) |  |
| inline

Definition at line 225 of file SVPickerView.java.

{
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
// Abychom získaly největší možný čtverec, je nutné nastavit řídící rozměr a ten co se má přizpůsobit na 0. Obrácený postup s hledáním minima nefunguje...
if (width < height) {
width = height;
} else {
height = width;
}
setMeasuredDimension(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
}

void mhr.appandroid.views.colorpicker.SVPickerView.onSizeChanged | ( | int | w,
|  | int | h,
|  | int | oldw,
|  | int | oldh
| ) |  |
| inlineprotected

Voláno v okamžiku, kdy view dostane rozměry.

Definition at line 239 of file SVPickerView.java.

{
super.onSizeChanged(w, h, oldw, oldh);
// if (getLayoutParams() != null && w != h) {
// getLayoutParams().height = w;
// setLayoutParams(getLayoutParams());
// }
minX = margin;
maxX = w - margin;
lengthX = maxX - margin;
minY = margin;
maxY = h - margin;
lengthY = maxY - margin;
cursorX = actualColor[1] * lengthX;
cursorY = (1 - actualColor[2]) * lengthY;
baseShader = new LinearGradient(minX, minY, minX, maxY, 0xFFFFFFFF, 0xFF000000, TileMode.CLAMP);
finalShader = null;
}

boolean mhr.appandroid.views.colorpicker.SVPickerView.onTouchEvent | ( | MotionEvent | ev | ) |
| inline

Zpracovává vstup od uživatele, zpracovává pouze jeden hlavní dotek.

Definition at line 275 of file SVPickerView.java.

{
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
cursor = cursorPressed;
// drCursor.setState(new int[] {android.R.attr.state_pressed, android.R.attr.state_enabled});
break;
case MotionEvent.ACTION_UP:
cursor = cursorNormal;
// drCursor.setState(new int[] {android.R.attr.state_enabled});
break;
}
float x = ev.getX();
float y = ev.getY();
if (x < minX) {
cursorX = 0;
} else if (x > maxX) {
cursorX = maxX - margin;
} else {
cursorX = (int) x - margin;
}
if (y < minY) {
cursorY = 0;
} else if (y > maxY) {
cursorY = maxY - margin;
} else {
cursorY = (int) y - margin;
}
actualColor[1] = cursorX / lengthX;
actualColor[2] = 1 - cursorY / lengthY;
if (listener != null) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
listener.onSVPickerStartTrackingTouch(this);
break;
case MotionEvent.ACTION_UP:
listener.onSVPickerStopTrackingTouch(this);
break;
}
listener.onSVPickerChange(this);
}
invalidate();
ViewParent parent = getParent();
if (parent != null) {
parent.requestDisallowInterceptTouchEvent(true);
}
return true;
}

void mhr.appandroid.views.colorpicker.SVPickerView.setColor | ( | int | color | ) |
| inline

Nastavý vybranou barvu na color (androidí formát)

Parameters

  color |

Definition at line 132 of file SVPickerView.java.

{
Color.colorToHSV(color, actualColor);
fullColor[0] = actualColor[0];
cursorX = actualColor[1] * lengthX;
cursorY = (1 - actualColor[2]) * lengthY;
finalShader = null;
invalidate();
}

void mhr.appandroid.views.colorpicker.SVPickerView.setColor | ( | float[] | hsvColor | ) |
| inline

Nastaví vybranou barvu na hsvColor, která je v androidím formátu.

Parameters

  hsvColor |

Definition at line 145 of file SVPickerView.java.

{
actualColor[0] = hsvColor[0];
actualColor[1] = hsvColor[1];
actualColor[2] = hsvColor[2];
fullColor[0] = actualColor[0];
cursorX = actualColor[1] * lengthX;
cursorY = (1 - actualColor[2]) * lengthY;
finalShader = null;
invalidate();
}

void mhr.appandroid.views.colorpicker.SVPickerView.setHue | ( | float | hue | ) |
| inline

Nastaví Hue v androidím formátu.

Parameters

  hue |

Definition at line 103 of file SVPickerView.java.

{
fullColor[0] = hue;
actualColor[0] = hue;
finalShader = null;
invalidate();
}

void mhr.appandroid.views.colorpicker.SVPickerView.setOnSVChangedListener | ( | OnSVPickerChangeListener | listener | ) |
| inline

Nastaví posluchače událostí

Parameters

  listener |

Definition at line 87 of file SVPickerView.java.

{
this.listener = listener;
}

void mhr.appandroid.views.colorpicker.SVPickerView.setSaturation | ( | float | saturation | ) |
| inline

Nastaví Saturation vybrané barvy.

Parameters

  saturation |

Definition at line 168 of file SVPickerView.java.

{
actualColor[1] = saturation;
cursorX = actualColor[1] * lengthX;
invalidate();
}

void mhr.appandroid.views.colorpicker.SVPickerView.setValue | ( | float | value | ) |
| inline

Nastaví value vybrané barvy.

Parameters

  value |

Definition at line 186 of file SVPickerView.java.

{
actualColor[2] = value;
cursorY = (1 - actualColor[2]) * lengthY;
invalidate();
}

## Member Data Documentation

float [] mhr.appandroid.views.colorpicker.SVPickerView.actualColor = { 0.0f, 0.0f, 0.0f }
| protected

Barva, která je aktuálně vybraná, jako HSV v androidím formátu.

Definition at line 77 of file SVPickerView.java.

Shader mhr.appandroid.views.colorpicker.SVPickerView.baseShader
| protected

Černobílý shader.

Definition at line 74 of file SVPickerView.java.

Bitmap mhr.appandroid.views.colorpicker.SVPickerView.cursor
| protected

Reference na Scrubber ukazující vybrané místo.

Definition at line 58 of file SVPickerView.java.

Bitmap mhr.appandroid.views.colorpicker.SVPickerView.cursorNormal
| protected

Drží referenci na Scrubber, který se použije pro indikaci vybraného místa, pokud uživatel neinteraguje s Pickerem.

Definition at line 60 of file SVPickerView.java.

Bitmap mhr.appandroid.views.colorpicker.SVPickerView.cursorPressed
| protected

Drží referenci na Scrubber, který se použije pro indikaci vybraného místa, pokud uživatel interaguje s Pickerem.

Definition at line 59 of file SVPickerView.java.

float mhr.appandroid.views.colorpicker.SVPickerView.cursorX
| protected

Aktuální x-ová souřadnice, která určuje, odkud se má vykreslovat cursor.

Definition at line 63 of file SVPickerView.java.

float mhr.appandroid.views.colorpicker.SVPickerView.cursorY
| protected

Analogie k cursorY.

Definition at line 67 of file SVPickerView.java.

StateListDrawable mhr.appandroid.views.colorpicker.SVPickerView.drCursor
| protected

Není deprecated, ale je to jiný přístup... Tento přistup využívají SeekBary, lze takto zařídit kompatibilita s nimi pro náročnější stylování.

Definition at line 62 of file SVPickerView.java.

Shader mhr.appandroid.views.colorpicker.SVPickerView.finalShader
| protected

Složený shader, který se použije k vykreslování, po nastavení hue se nastavi na null, což znamená, že se při vykreslování musí znovu vytvořit;.

Definition at line 75 of file SVPickerView.java.

float [] mhr.appandroid.views.colorpicker.SVPickerView.fullColor = { 0.0f, 1.0f, 1.0f }
| protected

Barva jako HSV, 0-360, 0-1, 0-1 NENI VYBRANA BARVA, ALE BARVA V PRAVEM HORNIM ROHU PICKERU - max. Value a max. Saturation.

Definition at line 78 of file SVPickerView.java.

int mhr.appandroid.views.colorpicker.SVPickerView.lengthX
| protected

Představuje vztažnou šířku pro výpočet S a V, délka oblasti gradientu.

Definition at line 66 of file SVPickerView.java.

int mhr.appandroid.views.colorpicker.SVPickerView.lengthY
| protected

Analogie k lengthX.

Definition at line 70 of file SVPickerView.java.

OnSVPickerChangeListener mhr.appandroid.views.colorpicker.SVPickerView.listener = null
| protected

Listener pro události.

Definition at line 80 of file SVPickerView.java.

int mhr.appandroid.views.colorpicker.SVPickerView.margin
| protected

Okraj okolo oblasti vzorníku - aby kurzor v rohu nebyl ořezaný - půlka jeho šířky.

Definition at line 71 of file SVPickerView.java.

int mhr.appandroid.views.colorpicker.SVPickerView.maxX
| protected

Analogie k minX.

Definition at line 65 of file SVPickerView.java.

int mhr.appandroid.views.colorpicker.SVPickerView.maxY
| protected

Analogie k maxX.

Definition at line 69 of file SVPickerView.java.

int mhr.appandroid.views.colorpicker.SVPickerView.minX
| protected

Minimální x-ová souřadnice, která ještě spadá do výběrové oblasi - představuje mez pro x-ovou souřadnici, která představuje vstup od uživatele.

Definition at line 64 of file SVPickerView.java.

int mhr.appandroid.views.colorpicker.SVPickerView.minY
| protected

Analogie k minX.

Definition at line 68 of file SVPickerView.java.

Paint mhr.appandroid.views.colorpicker.SVPickerView.paint
| protected

Paint pouzivany ke kresleni gradientu.

Definition at line 73 of file SVPickerView.java.

The documentation for this class was generated from the following file:

- /home/xxx/eclipse_workspaces/app/appandroid/src/mhr/appandroid/views/colorpicker/SVPickerView.java