Meracie komponenty:Slider

Z Kiwiki
Verzia z 22:35, 30. december 2012, ktorú vytvoril Juraj (diskusia | príspevky) (Vytvorená stránka „{{Template:Meracie komponenty obsah}} __NOTOC__ ==Opis== Slider - posuvný horizontálny ovládací prvok (posuvník). Posuvník obsahuje 2 hlavné časti: samotný posu...“)
(rozdiel) ← Staršia verzia | Aktuálna úprava (rozdiel) | Novšia verzia → (rozdiel)
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 Progress

  • 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)

...
    <eu.sensys.measurelib.Slider
        android:id="@+id/slider"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
     />
    <eu.sensys.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)

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_meter);
   MeraciKomponent slider, sevenSegment;
   slider = (MeraciKomponent) findViewById(R.id.slider);
   sevenSegment = (MeraciKomponent) 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);
   MeraciKomponent slider;
   slider = (MeraciKomponent) findViewById(R.id.slider);
   slider.setLabel("Zmena teploty");  
   slider.setLabel2("[mA]");

   Keypad kp = new Keypad(this, slider);
   kp.valueChangedDialog = new ComponentCallback(){
	@Override
	public void OnValueChanged(double value) {					
		slider.setValue(value);				
	}        	
   };
}