【翻译】Processing系列|(四)用 Android Studio 从 0 到 1 进行 Processing 安卓开发

原文链接:Processing for Android Developing with Android Studio

朋友跟我说官方教程里也写了该怎么用 Android Studio 开发,并且亲测可行。这种方式确实能开发出结构更加清晰、额外组件更加少的程序,比上一篇文章中直接克隆 Processing-Android 仓库要更合适,不过上一篇文章那种方法更加快捷。

导读:

上上上篇:【翻译】Processing系列|(一)简介及使用方法

上上篇:【翻译】Processing系列|(二)安卓模式的安装使用及打包发布

上一篇:【翻译】 Processing系列|(三)安卓项目构建

文章目录

    • [使用 Android Studio 开发](#使用 Android Studio 开发)
      • 一般步骤
      • [使用 BintRay 软件包(朋友说这个方式用不了)](#使用 BintRay 软件包(朋友说这个方式用不了))

使用 Android Studio 开发

使用 Android Studio 和 Processing 的核心库进行高级 Android 开发。

一般步骤

安卓工作室是 Google 推荐用于 Android 开发的工具。如果你已经有了如何使用 Android Studio(独立于 Processing)开发 Android 应用程序的经验,并且希望在 Android Studio 项目中使用 Processing 核心库,那么本教程可能会很有用。

我们所有的核心代码都捆绑在 processing-core.zip 中,它位于 AndroidMode 文件夹中。你只需将此文件复制为 processing-core.jar,并将其作为依赖项添加到项目中。Android Studio 的分步程序如下:

  1. 创建一个 Android 项目(如果尚未创建)。从选择空活动开始:
  1. 输入项目名称、包名称和 SDK 最低版本。当最新的 Android 处理核心迁移到 AndroidX 时,保持「 Use Legacy Android.Support Libraries 」选项未选中。之后,点击「完成」按钮:
  1. 将processing-core.zip(位于 processing 的 AndroidMode 文件夹中)复制到/app/libs,重命名为 processing-core.jar:
  1. 要将其添加为 JAR 依赖项,请单击 File->Project Structure.将出现一个对话框:
  1. 在最左侧面板中选择「依赖项」,然后单击模块面板中的「应用程序」。单击「声明的依赖项」下的加号按钮,然后单击「 JAR 依赖项」。将出现另一个对话框:
  1. 在「添加 JAR 」对话框中,输入路径「 libs/processing-core.jar 」,在第 2 步中,输入范围「 implementation 」。单击「确定」、「应用」,然后再次单击「确定」:
  1. 然后,通过扩展 Papplet 来编写草图代码,例如:
java 复制代码
// 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);
    }
  }
}
  1. 在主活动中初始化草图:
java 复制代码
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);
        }
    }
}

主活动中的 onRequestPermissionsResult() 方法在应用程序使用任何危险的权限情况下都是需要的。如果丢失,向用户请求权限的结果将不会到达草图,并且可能无法正常工作。还需要 onNewIntent(),以便草图可以处理发送到主 Activity 的 Intent.

  1. 最后,为主要活动创建一个简单的布局:
xml 复制代码
<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>

完整的 Android Studio 项目是可用here的。

使用 BintRay 软件包(朋友说这个方式用不了)

Processing-Core 库也以软件包的形式在上Bintray提供。使用以下依赖关系片段,可以轻松地将此包导入到 Gradle 项目中:

复制代码
compile 'org.p5android:processing-core:x.y.z'

其中 X.y.Z 是要使用的所需版本。在 Android Studio 中,Processing-Core 包将显示为模块依赖项,如下所示:

本账号所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/qq_46106285/article/details/138567527。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

相关推荐
用户207038619491 小时前
Compose 可点击文本:ClickableText Compose 中的 ClickableSpan
android
常利兵1 小时前
Kotlin作用域函数全解:run/with/apply/let/also与this/it的魔法对决
android·开发语言·kotlin
幼稚园的山代王1 小时前
Kotlin-基础语法练习一
android·开发语言·kotlin
闻不多2 小时前
用llamaindex搭建GAR遇到400
android·运维·服务器
阿华的代码王国2 小时前
【Android】适配器与外部事件的交互
android·xml·java·前端·后端·交互
跨界混迹车辆网的Android工程师2 小时前
实现Android图片手势缩放功能的完整自定义View方案,结合了多种手势交互功能
android·交互
wyjcxyyy3 小时前
打靶日记-PHPSerialize
android
安卓开发者14 小时前
Android RxJava 组合操作符实战:优雅处理多数据源
android·rxjava
阿华的代码王国14 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
一条上岸小咸鱼14 小时前
Kotlin 基本数据类型(三):Booleans、Characters
android·前端·kotlin