LinuxParty

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

No necesita un teléfono en un primer momento, ya que se puede escribir y probar el código en un emulador de Linux en su PC. Esta es una introducción de dos partes para conseguir una aplicación básica y comenzar a aprender acerca de la API de Android. En este tutorial se asume que tiene ya alguna familiaridad básica con Java, XML, y los conceptos básicos de programación, pero incluso si usted es débil en todos ellos, siéntase libre de continuar.

Entorno de desarrollo y los primeros pasos

Una nota sobre las versiones: la versión más reciente de Android es 4.2 (Jelly Bean),  como se puede ver en esta tabla de Wikipedia. Pero siempre es mejor programar para las versiones anteriores también, 4.0 (Ice Cream Sandwich) o 2.3 (Gingerbread), especialmente como Android es totalmente compatible hacia delante (por lo que el código 2.3 se ejecutará en 4,2), pero no siempre es retrocompatible con versiones anteriores. El código aquí debería funcionar en cualquier versión 4.0 o 2.3.

 

Programar Android en Linux, con Eclipse y PhoneGap

android temporizador de cuenta regresiva

La forma más rápida para llegar a su entorno de desarrollo conjunto, es descargar el paquete de Android. Usted también necesitará JDK 6 (no sólo JRE), tenga en cuenta que Android no es compatible con gcj . Si ya dispone de Eclipse, o si desea utilizar otro IDE, puede configurarlo para Android, como se describe aquí.

Ahora, cree un proyecto denominado "Cuenta atrás" ya sea usando Eclipse, [ 2 ], o desde la línea de comandos . Puse el BuildSDK a 4.0.3 y SDK mínimo de 2.2, y (en Eclipse) utilicé la plantilla BlankActivity.

Mi primer proyecto Android: Layout

Para nuestro primer programa, lo que vamos a hacer es mostrar un temporizador de cuenta atrás de 10 segundos cuando se haga clic en un botón. Antes de escribir el código, vamos a crear la interfaz -lo que el usuario verá cuando empieza la aplicación-. Abre res/layout/activity_countdown.xml para crear un diseño de XML, utilizando el editor gráfico de Eclipse, o un editor de texto / XML, e introduce lo siguiente:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
      <TextView 
          android:id="@+id/time_display_box" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:layout_alignParentTop="true" 
          android:layout_centerHorizontal="true" 
          android:layout_marginTop="60dp" 
          android:text="@string/_00_30" 
          android:textAppearance="?android:attr/textAppearanceLarge"/>
      <Button
          android:id="@+id/startbutton"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_below="@+id/time_display_box"
          android:layout_centerHorizontal="true"
          android:layout_marginTop="41dp"
          android:text="@string/start" />
    
</RelativeLayout>

Tenga en cuenta las referencias a @string/start y @string/__00_30. Estos valores se almacenan en res/values/strings.xml :

<string name="start">Start</string>
<string name="_00_30">00:30</string>

Esto ilustra la manera estándar de referirse a los recursos de Android. Es recomendable usar referencias de cadenas en lugar de cadenas de difícil codificación.

Mi primer proyecto Android: Código

A continuación, abra el archivo CountdownActivity.java en su editor, dispuesto a escribir algo de código. Ya debe tener un código auxiliar de método onCreate() generado. onCreate() siempre es llamado cuando se crea la primera actividad, así que vas a hacer a menudo esta instalación y aplicación de inicio. (Eclipse también pudo haber creado un trozo de método onCreateOptionsMenu (), que lo ignoramos por el momento.) Introduzca este código:

 public class CountdownActivity extends Activity {
	
  private static final int MILLIS_PER_SECOND = 1000;
  private static final int SECONDS_TO_COUNTDOWN = 30;
  private TextView     countdownDisplay;
  private CountDownTimer timer;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_countdown);
        
    countdownDisplay = (TextView) findViewById(R.id.time_display_box);
    Button startButton = (Button) findViewById(R.id.startbutton);
    startButton.setOnClickListener(new View.OnClickListener() {
      public void onClick(View view) {
        try {
          showTimer(SECONDS_TO_COUNTDOWN * MILLIS_PER_SECOND);
        } catch (NumberFormatException e) {
          // method ignores invalid (non-integer) input and waits
          // for something it can use
        }
      }
    });
  }
}

Se dará cuenta que esto hace de este un sorprendentemente fácil primer proyecto: la API de Android incluye un countDownTimer que puede utilizar. Hemos creado este, y la pantalla de cuenta atrás, como variables miembro privadas. En onCreate() utilizaremos el método setContentView para tomar nuestra layout XML. La sintaxis R.foo.bar es una manera estándar de referirse a los recursos Android XML en el código, por lo que verá un montón de ellos.

findViewById es otro método que vamos a usar mucho, aquí, toma la pantalla y el botón Inicio de la disposición XML. Para que el botón funcione, se necesita una OnClickListener. Esta es una interfaz, por lo que debe tener subclases. Podríamos crear una nueva clase MyButton para hacer esto, pero esto es demasiado para un solo botón. En cambio, lo hacemos online, la creación de un nuevo OnClickListener y su método onClick(). Ahora, simplemente llama showTimer() sobre el número de milisegundos que queremos usar (en la actualidad no modificable).

Entonces, ¿qué hace showTimer()?

private void showTimer(int countdownMillis) {
  if(timer != null) { timer.cancel(); }
  timer = new CountDownTimer(countdownMillis, MILLIS_PER_SECOND) {
  @Override
  public void onTick(long millisUntilFinished) {
    countdownDisplay.setText("counting down: " +
    millisUntilFinished / MILLIS_PER_SECOND);
  }
  @Override
    public void onFinish() {
      countdownDisplay.setText("KABOOM!");
    }
  }.start();
}

La clase countDownTimer hace casi todo el trabajo por nosotros, lo cual es bueno. Sólo en caso de que ya haya un temporizador, comenzamos por cancelarlo si existe. Entonces creamos un nuevo temporizador, ajustar el número de milisegundos para la cuenta atrás (parámetros de la showTimer()) y los milisegundos por intervalo de conteo. Este intervalo es la frecuencia con la onTick() es despedido de devolución de llamada.

CountDownTimer es otra clase abstracta, y los métodos __onTick()__  y  __onFinish()__ deben aplicarse cuando sea una subclase. Nosotros anulamos onTick() para disminuir la pantalla de cuenta atrás por un segundo en cada tic-tac, y anular onFinish() para establecer un mensaje de la pantalla una vez que finalice la cuenta atrás. Por último, start() establece el temporizador en marcha.

Si selecciona "Ejecutar" en Eclipse, puede optar por ejecutar esto como una aplicación para Android, y un emulador automáticamente genera y ejecuta para usted.

Felicitaciones, usted ha escrito su primera aplicación para Android! En la segunda parte de esta serie, vamos a tener una mirada más cercana a la estructura de una aplicación para Android, y hacer algunas mejoras en el contador de tiempo para introducir un tiempo de cuenta atrás, un botón de Stop, y las opciones de menú. También podremos ejecutarlo en un teléfono físico más que el emulador de software.

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política