Meracie komponenty:Slider

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Jazyk EN SK Navigácia Android projekty -> Meracie komponenty -> Meracie komponenty:Slider -> MeasureDemo

Opis

Slider - posuvný horizontálny ovládací prvok (posuvník). Posuvník obsahuje 2 hlavné časti: samotný posuvník a svoj vlastný displej, kde je zobrazená aktuálne hodnota posuvníka. Dodatočná textová informácia je umiestnená v časti pre zobrazenie presnej hodnoty komponentu. Posuvníkom sa dá ovládať iný komponent. Pre ovládanie hodnoty iného komponentu, obsahuje (ako všetky ostatné komponenty) metódu spätného volania, ktorá sa spustí, ak sa zmení hodnota komponentu.

Prednastavené hodnoty komponentu

  • value = 0
  • minimum = 0
  • maximum = 100
  • warning = 60% z maxima
  • alert = 85% z maxima

Špeciálne nastavenie komponentu Slider

  • Pri použití komponentu sa odporúča nastaviť výšku komponentu na 0 dip. V tomto prípade sa správna výška vypočíta zo šírky komponentu tak, aby jeho rozmery boli proporčne správne.

Náhľady

Príklad použitia

xml (activity_meter.xml)

...
    <info.kiwiki.measurelib.Slider
        android:id="@+id/slider"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
     />
    <info.kiwiki.measurelib.SevenSegment
        android:id="@+id/segment"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
     />
...

java

V nasledujúcom kóde je ukážka ako sa dá pomocou komponentu Slider nastavovať hodnotu inému komponentu (SevenSegment)

import info.kiwiki.measurelib.BaseComponent;
import info.kiwiki.measurelib.Slider;
import info.kiwiki.measurelib.SevenSegment;

...

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_meter);
   BaseComponent slider, sevenSegment;
   slider = (BaseComponent) findViewById(R.id.slider);
   sevenSegment = (BaseComponent) findViewById(R.id.segment);
   slider.setLabel("Zmena teploty");  
   slider.setLabel2("[mA]");

   // pouzitie callback metody OnValueChanged
   slider.valueChanged = new ComponentCallback(){
    	@Override
       	public void OnValueChanged(double value) {
       		sevenSegment.setValue(value);
   };
}

Zadávanie presnej hodnoty posuvníku

Komponent KeyPad ako dialóg

Pri zadávaní hodnoty ťahaním bežca komponentu Slider sa nedá hodnota nastaviť presne. Pre presné zadávanie hodnoty je pripravený komponent Keypad ktorý slúži na zadávanie presných hodnôt pomocou numerickej klávesnice. Dialóg KeyPad sa vyvolá dlhším podržaním prstu na mieste, kde sa zobrazuje presná hodnota posuvníku (okienko napravo).

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_meter);
   BaseComponent slider;
   slider = (BaseComponent) findViewById(R.id.slider);
   slider.setLabel("Zmena teploty");  
   slider.setLabel2("[mA]");

   KeypadDialog kp = new KeypadDialog(this, slider);

}