App
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);
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());
// }
maxX = w - margin;
maxY = h - margin;
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:
// drCursor.setState(new int[] {android.R.attr.state_pressed, android.R.attr.state_enabled});
break;
case MotionEvent.ACTION_UP:
// 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) {
} else {
cursorX = (int) x - margin;
}
if (y < minY) {
cursorY = 0;
} else if (y > maxY) {
} else {
cursorY = (int) y - margin;
}
if (listener != null) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_UP:
break;
}
}
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);
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];
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.

{
}
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;
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: