Pesquisar

Postagens populares

quinta-feira, 8 de março de 2012

JoystickView - Uma view customizada que simula um Joystick no Android

JoystickView é uma Custom Android View "View para Android customizada" que simula um Joystick para aplicações interativas para Android, como simples objetivo está view permite acessar os valores de ÂNGULO, FORÇA e DIREÇÃO do movimento do joystck virtual.
Exibição de uma view com a JoystickView

INSTALAÇÃO

Modo Rápido 

1º Passo: Faço o download do aquivo JAR que contem a biblioteca download

2º Passo: Crie uma pasta chamada "libs" dentro da raiz do seu projeto e copie o arquivo JAR para ela.

E isto já é o suficiente para você referenciar e usar a JoystickView no seu projeto.

Modo Avançado

Vá a página oficial de desenvolvimento do projeto no github JoystickView.

1º Passo: Faça um GIT CLONE ou se não tiver experiência com GIT faço o download do código da lib para um local de conhecimento e apropriado da sua maquina, então:

2º Passo: Vá no menu FILE do seu eclipse, depois em IMPORT.


3º Passo: Agora click em Existing Project into Workspace


4º Passo: Click em Browse e encontre a pasta onde você fez o clone ou baixou o código fonte


5º Passo: Vá clicando em Next ou Finish, e a JoystickView está pronto para ser usada nas suas aplicações.



6º Passo: IMPORTAÇÃO - Para usar a JoystickView nas suas aplicações.

Para utilizar a JoystickView a suas aplicações, basta adicionar a lib ao classpath da sua aplicação:


7º Passo: Click com o botão direito sobre seu projeto e vá a PROPRIEDADES, na aba de propriedades, escolha a aba ANDROID e click em ADD.



8º Passo: Selecione a lib JoystickView e click em OK para finalizar.


USO

A partir deste ponto você pode inflar a JoystickView nos seus layouts ou referenciar ela nas suas Activities.



No exemplo a criação de uma simples view que usa o JoystickView como ferramenta:

import com.zerokol.views.JoystickView;

import com.zerokol.views.JoystickView.OnJoystickMoveListener;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class JoystickViewDemoActivity extends Activity {
     private TextView angleTextView;
     private TextView powerTextView;
     private TextView directionTextView;
     // Importando igualmente a outras views
     private JoystickView joystick;

     @Override
     public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);

          angleTextView = (TextView) findViewById(R.id.angleTextView);
          powerTextView = (TextView) findViewById(R.id.powerTextView);
          directionTextView = (TextView) findViewById(R.id.directionTextView);
          // Referenciando igualmente a outras views
          joystick = (JoystickView) findViewById(R.id.joystickView);

          // Listener de eventos que sempre retornará com a variação do angulo em
          // graus, a força do movimento em porcentagem e a direção do movimento
          joystick.setOnJoystickMoveListener(new OnJoystickMoveListener() {
               @Override
               public void onValueChanged(int angle, int power, int direction) {
                    angleTextView.setText(" " + String.valueOf(angle) + "°");
                    powerTextView.setText(" " + String.valueOf(power) + "%");
                    switch (direction) {
                         case JoystickView.FRONT:
                              directionTextView.setText(R.string.front_lab);
                              break;

                         case JoystickView.FRONT_RIGHT:
                              directionTextView.setText(R.string.front_right_lab);
                              break;

                         case JoystickView.RIGHT:
                              directionTextView.setText(R.string.right_lab);
                               break;

                         case JoystickView.RIGHT_BOTTOM:
                              directionTextView.setText(R.string.right_bottom_lab);
                              break;

                         case JoystickView.BOTTOM:
                              directionTextView.setText(R.string.bottom_lab);
                              break;

                         case JoystickView.BOTTOM_LEFT:
                              directionTextView.setText(R.string.bottom_left_lab);
                              break;

                         case JoystickView.LEFT:
                              directionTextView.setText(R.string.left_lab);
                              break;

                         case JoystickView.LEFT_FRONT:
                              directionTextView.setText(R.string.left_front_lab);
                              break;

                         default:
                              directionTextView.setText(R.string.center_lab);
                    }
               }
          }, JoystickView.DEFAULT_LOOP_INTERVAL);
     }
}

No seu XML de layout:



    



Creative Commons License

This work is licensed under a Creative Commons Attribution 3.0 Unported License.

Um comentário:

Ricardo Vigatti disse...

Muito bom e interessante. Mas eu percebi que no github as últimas mudanças foram a 2 anos atrás. Ainda é viável utilizar essa lib ?