App

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

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

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

Třída sloužící k zobrazování jendokanálových bitmap jako masek. Umožňuje nastavit zvětšení zobrazení, drawable pro masku a pozadí. More...

Inheritance diagram for mhr.appandroid.views.MaskView:

## Classes
interface | OnMaskCanvasChangedListener
| Interface pro posluchače, který využívá BrushView k vykreslování masky. More...

## Public Member Functions
| MaskView (Context context)
| MaskView (Context context, AttributeSet attrs)
| MaskView (Context context, AttributeSet attrs, int defStyle)
double | getZoom ()
| Vrátí hodnotu zoomu.
void | setZoom (double zoom)
| Nastaví Zoom, pokud je hodnota mimo dovolený rozsah, nastaví nejbližší možnou.
APDBitmap | getMaskCanvas ()
| Vrátí instanci APDBitmap, který představuje canvas pro tento MaskView.
void | setOnMaskCanvasChangedListener (OnMaskCanvasChangedListener listener)
| Nastaví posluchače, který bude informován o změnách rozměrů MaskView.
Paint | getMaskViewBackground ()
| Vrátí instanci Paint, která se použije pro vyplnění pozadí View před vykreslením MaskCanvasu.
Paint | getMaskViewForeground ()
| Vrátí instanci Paint, která se použije pro vykreslení masky.

## Static Public Attributes
static final double | minZoom = 0.001
| Minimální hodnota zvětšení, jakou může uživatel nastavit.
static final double | maxZoom = 1000
| Maximální hodnota zvětšení, jakou může uživatel nastavit.

## Protected Member Functions
void | init ()
| Provede potřebné inicializace při vytvoření.
void | onDetachedFromWindow ()
| V Voláno v okamžiku, kdy už MaskView není součástí okna.
void | onAttachedToWindow ()
void | onSizeChanged (int w, int h, int oldw, int oldh)
| Voláno v okamžiku, kdy MaskView dostane rozměry.
void | onDraw (Canvas canvas)
| Provede vykreslení bitmapy.

## Protected Attributes
double | factor = 1
| Faktor, jakým se násobí velikost MaskView, aby se dostala velikost canvasu, je převrácená hodnota zoomu.
Rect | dstRect = null
| Obdélník představující velikost MaskView, do tohoto obdélníku se převzorkuje a vykresluje mask.
APDBitmap | mask = null
| Canvas představující vykreslovanou masku, je přidělován uživateli a ten do něj vykresluje.
OnMaskCanvasChangedListener | listener = null
| Listener, který má být informován o změnách velikosti canvasu.
Paint | background
| Paint, který je použit k překreslení pozadí před vykreslením masky.
Paint | foreground
| Paint, kterým je kreslena maska.

## Detailed Description

Třída sloužící k zobrazování jendokanálových bitmap jako masek. Umožňuje nastavit zvětšení zobrazení, drawable pro masku a pozadí.

Definition at line 21 of file MaskView.java.

## Constructor & Destructor Documentation

mhr.appandroid.views.MaskView.MaskView | ( | Context | context | ) |
| inline

Definition at line 80 of file MaskView.java.

{
super(context);
init();
}

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

Definition at line 85 of file MaskView.java.

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

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

Definition at line 90 of file MaskView.java.

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

## Member Function Documentation

APDBitmap mhr.appandroid.views.MaskView.getMaskCanvas | ( |  | ) |
| inline

Vrátí instanci APDBitmap, který představuje canvas pro tento MaskView.

Returns

Definition at line 141 of file MaskView.java.

{
return mask;
}

Paint mhr.appandroid.views.MaskView.getMaskViewBackground | ( |  | ) |
| inline

Vrátí instanci Paint, která se použije pro vyplnění pozadí View před vykreslením MaskCanvasu.

Returns

Definition at line 157 of file MaskView.java.

{
return background;
}

Paint mhr.appandroid.views.MaskView.getMaskViewForeground | ( |  | ) |
| inline

Vrátí instanci Paint, která se použije pro vykreslení masky.

Returns

Definition at line 165 of file MaskView.java.

{
return foreground;
}

double mhr.appandroid.views.MaskView.getZoom | ( |  | ) |
| inline

Vrátí hodnotu zoomu.

Returns

Definition at line 103 of file MaskView.java.

{
return 1 / factor;
}

void mhr.appandroid.views.MaskView.init | ( |  | ) |
| inlineprotected

Provede potřebné inicializace při vytvoření.

Definition at line 56 of file MaskView.java.

{
setLayerType(View.LAYER_TYPE_SOFTWARE, null); // Jinak se nacachuje a neví o nativní změně bitmapy...
// setDrawingCacheEnabled(false); Nestačí, stále je bitmapa pro vykreslování cachovaná v graf. kartě a změny na ní se nereflektují do vykreslování.
background = new Paint();
background.setColor(0xFFFFFFFF);
foreground = new Paint();
foreground.setColor(0xFF000000);
}

void mhr.appandroid.views.MaskView.onAttachedToWindow | ( |  | ) |
| inlineprotected

Definition at line 75 of file MaskView.java.

{
setLayerType(View.LAYER_TYPE_SOFTWARE, null); // Jinak se nacachuje a neví o nativní změně bitmapy...
}

void mhr.appandroid.views.MaskView.onDetachedFromWindow | ( |  | ) |
| inlineprotected

V Voláno v okamžiku, kdy už MaskView není součástí okna.

Definition at line 67 of file MaskView.java.

{
if (mask != null) {
mask.getBitmap().recycle(); // Prý není nutné, ale může jít o velké bitmapy.
mask = null;
}
}

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

Provede vykreslení bitmapy.

Definition at line 185 of file MaskView.java.

{
canvas.drawRect(dstRect, background);
if (mask == null ) {
mask = new APDBitmap(new BitmapInfo((int) (factor * getWidth()), (int) (factor * getHeight()), ChannelCount.SINGLE_CHANNEL, Depth.DEPTH_8_BIT, ColorMode.MONO, false));
if (listener != null) {
listener.onMaskCanvasChanged(this);
}
}
if (mask != null) { // Pravdepodobne neni nutne, ale extremni zoom by mohl zpusobit problemy...
canvas.drawBitmap(mask.getBitmap(), null, dstRect, foreground);
}
}

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

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

Definition at line 171 of file MaskView.java.

{
super.onSizeChanged(w, h, oldw, oldh);
dstRect = new Rect(0, 0, w, h);
if (mask != null) {
mask.getBitmap().recycle();
}
mask = new APDBitmap(new BitmapInfo((int) (factor * w), (int) (factor * h), ChannelCount.SINGLE_CHANNEL, Depth.DEPTH_8_BIT, ColorMode.MONO, false));
if (listener != null) {
listener.onMaskCanvasChanged(this);
}
}

void mhr.appandroid.views.MaskView.setOnMaskCanvasChangedListener | ( | OnMaskCanvasChangedListener | listener | ) |
| inline

Nastaví posluchače, který bude informován o změnách rozměrů MaskView.

Parameters

  listener |

Definition at line 149 of file MaskView.java.

{
this.listener = listener;
}

void mhr.appandroid.views.MaskView.setZoom | ( | double | zoom | ) |
| inline

Nastaví Zoom, pokud je hodnota mimo dovolený rozsah, nastaví nejbližší možnou.

Parameters

  zoom |

Definition at line 111 of file MaskView.java.

{
if (zoom < minZoom) {
zoom = minZoom;
} else if (zoom > maxZoom) {
zoom = maxZoom;
}
zoom = 1 / zoom;
factor = zoom;
if (mask != null) {
mask.getBitmap().recycle(); // hazelo OutOfMemoryException, ikdyž android prý převedl bitmapy do heapu JVM a celkově nemá být nutnost volat recycle();
}
// Ošetřena minimální velikost, kdy při max. zoomu vznikala neplatná bitmapa.
int width = (int) (zoom * dstRect.width());
int height = (int) (zoom * dstRect.height());
if (width < 1) {
width = 1;
}
if (height < 1) {
height = 1;
}
mask = new APDBitmap(new BitmapInfo(width, height, ChannelCount.SINGLE_CHANNEL, Depth.DEPTH_8_BIT, ColorMode.MONO, false));
if (listener != null) {
listener.onMaskCanvasChanged(this);
}
}

## Member Data Documentation

Paint mhr.appandroid.views.MaskView.background
| protected

Paint, který je použit k překreslení pozadí před vykreslením masky.

Definition at line 44 of file MaskView.java.

Rect mhr.appandroid.views.MaskView.dstRect = null
| protected

Obdélník představující velikost MaskView, do tohoto obdélníku se převzorkuje a vykresluje mask.

Definition at line 41 of file MaskView.java.

double mhr.appandroid.views.MaskView.factor = 1
| protected

Faktor, jakým se násobí velikost MaskView, aby se dostala velikost canvasu, je převrácená hodnota zoomu.

Definition at line 40 of file MaskView.java.

Paint mhr.appandroid.views.MaskView.foreground
| protected

Paint, kterým je kreslena maska.

Definition at line 45 of file MaskView.java.

OnMaskCanvasChangedListener mhr.appandroid.views.MaskView.listener = null
| protected

Listener, který má být informován o změnách velikosti canvasu.

Definition at line 43 of file MaskView.java.

APDBitmap mhr.appandroid.views.MaskView.mask = null
| protected

Canvas představující vykreslovanou masku, je přidělován uživateli a ten do něj vykresluje.

Definition at line 42 of file MaskView.java.

final double mhr.appandroid.views.MaskView.maxZoom = 1000
| static

Maximální hodnota zvětšení, jakou může uživatel nastavit.

Definition at line 49 of file MaskView.java.

final double mhr.appandroid.views.MaskView.minZoom = 0.001
| static

Minimální hodnota zvětšení, jakou může uživatel nastavit.

Definition at line 48 of file MaskView.java.

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

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