【翻译】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。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

相关推荐
千里马学框架1 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台1 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone1 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc1 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo1 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077001 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼1 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone1 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen1 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone1 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui