segunda-feira, 13 de junho de 2011

Tutorial Usando SeekBar como entrada de valores

Olá estava usando SeekBar para entrada de valores (peso, medidas...), porém percebi em testes práticos que ficava díficil o valor afinado (exemplo para colocar exatamente um valor como 82, sempre ia um pouco mais ou menos) então criei dois botões do lado para poder afinar o valor, como na figura abaixo:







Este é o código layout(xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00AFEF"
xmlns:android="http://schemas.android.com/apk/res/android">

<ScrollView android:id="@+id/ScrollView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#5500ccff">

<LinearLayout android:id="@+id/LinearLayout02"
android:layout_width="fill_parent"
android:layout_height="10dip"
android:padding="7dip"
android:orientation="vertical">

  <TextView android:id="@+id/labelCalculos" android:text="Cálculos Nutricionais"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:gravity="center"
        android:textColor="#FFFFFF"></TextView>
       
         <TextView android:id="@+id/labelPeso" android:text="Peso:"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:gravity="left"
        android:padding="5dip"
        android:textColor="#000000"></TextView>
       
        <RelativeLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
    <Button
    android:id="@+id/buttonmenospeso"
    android:layout_width="wrap_content"
    android:layout_height="35dip"
    android:text="-"
    android:layout_alignParentLeft="true"
    />
       
         <RelativeLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_toRightOf="@+id/buttonmenospeso"
    >
     <Button
    android:id="@+id/buttonmaispeso"
    android:layout_width="wrap_content"
    android:layout_height="35dip"
    android:text="+"
  
    android:layout_alignParentRight="true"
    />
   
         <SeekBar android:id="@+id/seekBarPeso"
         android:layout_width="fill_parent"
         android:layout_height="35dip"
         android:paddingLeft="7dip"
         android:paddingRight="7dip"
         android:layout_toLeftOf="@+id/buttonmaispeso"
        ></SeekBar>
       
          </RelativeLayout>
</RelativeLayout>
       
       
         <TextView android:id="@+id/labelAltura" android:text="Altura:"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:gravity="left"
        android:padding="5dip"
        android:textColor="#000000"></TextView>
       
               
        <RelativeLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
    <Button
    android:id="@+id/buttonmenosaltura"
    android:layout_width="wrap_content"
    android:layout_height="35dip"
    android:text="-"
    android:layout_alignParentLeft="true"
    />
       
         <RelativeLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_toRightOf="@+id/buttonmenosaltura"
    >
     <Button
    android:id="@+id/buttonmaisaltura"
    android:layout_width="wrap_content"
    android:layout_height="35dip"
    android:text="+"
  
    android:layout_alignParentRight="true"
    />
   
         <SeekBar android:id="@+id/seekBarAltura"
         android:layout_width="fill_parent"
         android:layout_height="35dip"
         android:paddingLeft="7dip"
         android:paddingRight="7dip"
         android:layout_toLeftOf="@+id/buttonmaisaltura"
        ></SeekBar>
       
          </RelativeLayout>
</RelativeLayout>

   
         <TextView android:id="@+id/labelIdade" android:text="Idade:"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:gravity="left"
        android:padding="5dip"
        android:textColor="#000000"></TextView>
       

<RelativeLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
    <Button
    android:id="@+id/buttonmenosidade"
    android:layout_width="wrap_content"
    android:layout_height="35dip"
    android:text="-"
    android:layout_alignParentLeft="true"
    />
       
         <RelativeLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_toRightOf="@+id/buttonmenosidade"
    >
     <Button
    android:id="@+id/buttonmaisidade"
    android:layout_width="wrap_content"
    android:layout_height="35dip"
    android:text="+"
  
    android:layout_alignParentRight="true"
    />
   
         <SeekBar android:id="@+id/seekBarIdade"
         android:layout_width="fill_parent"
         android:layout_height="35dip"
         android:paddingLeft="7dip"
         android:paddingRight="7dip"
         android:layout_toLeftOf="@+id/buttonmaisidade"
        ></SeekBar>
       
          </RelativeLayout>
</RelativeLayout>

       
         <TextView android:id="@+id/labelAtividade" android:text="Atividade:"
        android:layout_width="fill_parent" android:layout_height="45dip"
        android:layout_gravity="top"
        android:gravity="left"
        android:padding="5dip"
        android:textColor="#000000"></TextView>
       

<RelativeLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
    <Button
    android:id="@+id/buttonmenosatividade"
    android:layout_width="wrap_content"
    android:layout_height="35dip"
    android:text="-"
    android:layout_alignParentLeft="true"
    />
       
         <RelativeLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_toRightOf="@+id/buttonmenosatividade"
    >
     <Button
    android:id="@+id/buttonmaisatividade"
    android:layout_width="wrap_content"
    android:layout_height="35dip"
    android:text="+"
    android:layout_alignParentRight="true"
    />
   
         <SeekBar android:id="@+id/seekBarAtividade"
         android:layout_width="fill_parent"
         android:layout_height="35dip"
         android:paddingLeft="7dip"
         android:paddingRight="7dip"
         android:layout_toLeftOf="@+id/buttonmaisatividade"
        ></SeekBar>
       
          </RelativeLayout>
</RelativeLayout>

        </LinearLayout>
    </ScrollView>
</LinearLayout>

Depois é só ir no evento Click do botão na atividade e mandar adicionar no seek que resolve o problema. veja ex:

Button buttonMaisPeso = (Button) findViewById(R.id.buttonmaispeso);
        Button buttonMenosPeso = (Button) findViewById(R.id.buttonmenospeso);
       
        buttonMaisPeso.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                seekPeso.setProgress(seekPeso.getProgress()+1);
                           
                        }
        });
        buttonMenosPeso.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                seekPeso.setProgress(seekPeso.getProgress()-1);
                           
                        }
        });

0 comentários:

Postar um comentário