Processing para Android

EN ES

Programando con Android Studio

Es posible usar Android Studio para el desarrollo avanzado de Android con la biblioteca principal de Processing.

Pasos generales

Android Studio es la herramienta recomendada por Google para desarrollo en Android. Si ya tienes experiencia en con la programación de Android app usando Android Studio, y quisieras incorporar la biblioteca principal de Processing para Android en tus proyectos de Android Studio projects, entonces este tutorial puede serte de utilidad.

Todo el código que define la API de Processing está incluido dentro de archivo processing-core.zip, que está dentro de la subcarpeta AndroidMode en la carpeta de modos dentro de la carpeta de bosquejos. Lo único que tienes que hacer es copiar este archivo como rocessing-core.jar y agregarlo como una dependencia a tu proyecto. El procedimiento paso a paso para hacer esto con Android Studio se detalla a continuación:

1.Cree un proyecto de Android si aún no lo ha creado. Comience seleccionando una actividad vacía:

Select Activity

2.Ingrese el nombre del proyecto, el nombre del paquete y la versión mínima del SDK. Mantenga la opción 'Use legacy android.support libraries' sin marcar, ya que el último núcleo de procesamiento de Android se migra a androidx. Después de eso, haga clic en el botón 'Finish':

Select target

3. Copia processing-core.zip (ubicado en la carpeta AndroidMode en Processing) a app/libs, renómbralo como processing-core.jar y agrégalo como una dependencia jar a el proyecto:

Module settings

4. Para agregarlo como una dependencia de jar, haga clic en Archivo -> Estructura del proyecto. Un cuadro de diálogo aparecerá:

Module settings

5. Seleccione 'dependencies' en el panel más a la izquierda y luego haga clic en 'app' en el panel de módulos. Haga clic en el botón más bajo Declared Dependencies y luego haga clic en Jar Dependency. Aparecerá otro cuadro de diálogo:

Module settings

6. En el cuadro de diálogo Agregar jar, ingrese la ruta como 'libs / processing-core.jar' y en el Paso 2, ingrese el alcance como 'implementación'. Haga clic en 'OK', 'Apply' y luego nuevamente en 'OK':

Module settings

7. Una vez hecho todo lo anterior, escribe el código de tu bosquejo extendiendo la clase PApplet, por ejemplo:


// Sketch.java
package tutorials.androidstudio.fragmentsv4;

import processing.core.PApplet;

public class Sketch extends PApplet {
  public void settings() {
    size(600, 600);
  }

  public void setup() { }

  public void draw() {
    if (mousePressed) {
      ellipse(mouseX, mouseY, 50, 50);
    }
  }
}

8. Inicializa el bosquejo en la actividad principal:


package tutorials.androidstudio.fragmentsv4;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import processing.android.PFragment;
import processing.android.CompatUtils;
import processing.core.PApplet;

public class MainActivity extends AppCompatActivity {
    private PApplet sketch;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FrameLayout frame = new FrameLayout(this);
        frame.setId(CompatUtils.getUniqueViewId());
        setContentView(frame, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT));

        sketch = new Sketch();
        PFragment fragment = new PFragment(sketch);
        fragment.setView(frame, this);
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
        if (sketch != null) {
            sketch.onRequestPermissionsResult(
                    requestCode, permissions, grantResults);
        }
    }

    @Override
    public void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        if (sketch != null) {
            sketch.onNewIntent(intent);
        }
    }
}
El método onRequestPermissionsResult() en la actividad principal es necesario en caso de que la aplicación utilice cualquier permiso peligroso. Si hiciera falta, el bosquejo no será notificado de los resultados de solicitar el permiso al usuario, con lo cual es posible que no funcione correctamente. onNewIntent() también es necesario para que el bosquejo pueda manejar los intentos enviados a la actividad principal.

9. Finalmente, crea un diseño (layout) mínimo para la actividad principal:


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="tutorials.androidstudio.fragmentsv4.MainActivity" >

    <FrameLayout android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>   

El proyecto completo de Android Studio está disponible aquí.

Usando paquetes de Bintray

La biblioteca principal de Processing también está disponible como un paquete en Bintray. Este paquete se puede importar fácilmente a un proyecto de Gradle usando la siguiente especificación de dependencia:


compile 'org.p5android:processing-core:x.y.z'

donde x.y.z es la versión que quisieras utilizar. En Android Studio, el paquete principal de Processing aparecerá como una dependencia de módulo de la siguiente manera:

Bintray package