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

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

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

导读:
上上上篇:【翻译】Processing系列|(一)简介及使用方法
上上篇:【翻译】Processing系列|(二)安卓模式的安装使用及打包发布
上一篇:【翻译】 Processing系列|(三)安卓项目构建

文章目录

    • 使用 Android Studio 开发
      • 一般步骤
      • 使用 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 来编写草图代码,例如:
// 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. 在主活动中初始化草图:
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;@Overrideprotected 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);}@Overridepublic void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {if (sketch != null) {sketch.onRequestPermissionsResult(requestCode, permissions, grantResults);}}@Overridepublic void onNewIntent(Intent intent) {super.onNewIntent(intent);if (sketch != null) {sketch.onNewIntent(intent);}}
}

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

  1. 最后,为主要活动创建一个简单的布局:
<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。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/702917.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模电·复合管放大电路_040

复合管放大电路 一、复合管1.晶体管组成的复合管及其电流放大系数2.场效应管与晶体管组成的复合管及其跨导3.复合管的组成原则 二、复合管共射放大电路三、复合管共源放大电路四、复合管共集放大电路 一、复合管 1.晶体管组成的复合管及其电流放大系数 图1.( a )和( b )所示为…

YOLOV8从环境部署(GPU版本)

一、安装&#xff43;&#xff55;&#xff44;&#xff41;和&#xff43;&#xff55;&#xff44;&#xff4e;&#xff4e; 1、安装cuda之前先打开英伟达控制面板查看自己的显卡信息 2、“帮助”—>“系统信息”—>“组件”&#xff0c;然后看第三行的信息“Nvidia …

javaSE:类和对象

面向对象 java是一种面向对象的编程语言&#xff0c;面向对象就是把能为我们所用的东西直接拿来使用&#xff0c;省去中间过程&#xff0c;比如洗衣服&#xff0c;要完成这一个动作&#xff0c;我们本来需要一个盆&#xff0c;放水&#xff0c;放衣服&#xff0c;换水&#xf…

LeetCode2352相等行列对

题目描述 给你一个下标从 0 开始、大小为 n x n 的整数矩阵 grid &#xff0c;返回满足 Ri 行和 Cj 列相等的行列对 (Ri, Cj) 的数目。如果行和列以相同的顺序包含相同的元素&#xff08;即相等的数组&#xff09;&#xff0c;则认为二者是相等的。 解析 针对题目给出的数量级…

业务上云--从Container+BuildKitd打镜像到在Kubernetes上部署LNMP

一、背景 在基于kubeasz部署kubernetes高可用集群-CSDN博客文章部署的kubernetes集群上部署LNMP 1.1、Kubernetes环境 1.2、Harbor环境 【docker基础】使用Harbor搭建私有仓库-docker-compose使用示例--第二周作业_harbor docker-compose-CSDN博客 Harbor环境升级&#xff…

2024数学建模深圳杯B题成品论文43页word+完整可视化结果图+可执行代码

【无水印word】2024深圳杯B题成品论文43页&#xff08;附带1-4小问完整py解题代码思路&#xff09;https://www.jdmm.cc/file/2710664 批量工件并行切割下料优化研究 摘 要 本研究针对批量工件并行切割下料问题展开了深入的探讨与分析。通过建立数学模型和运用优化算法&…

ABAP ALSM_EXCEL_TO_INTERNAL_TABLE 导入Excel的几个问题

1、没有办法多页签 2、单元格50个字符限制&#xff0c;每个单元格仅读取50个字符 3、Excel单元格总不能有不可见字符换 eg 回车&#xff0c;换行 # 等否则读取的结果会加上引号

Stable Diffusion入门使用技巧及个人实例分享--大模型及lora篇

大家好&#xff0c;近期使用Stable Diffusion比较多&#xff0c;积累整理了一些内容&#xff0c;得空分享给大家。如果你近期正好在关注AI绘画领域&#xff0c;可以看看哦。 本文比较适合已经解决了安装问题&#xff0c;&#xff08;没有安装的在文末领取&#xff09; 在寻找合…

PyTorch进行CIFAR-10图像分类

本节将通过一个实战案例来详细介绍如何使用PyTorch进行深度学习模型的开发。我们将使用CIFAR-10图像数据集来训练一个卷积神经网络。 神经网络训练的一般步骤如图5-3所示。 &#xff08;1&#xff09;加载数据集&#xff0c;并做预处理。 &#xff08;2&#xff09;预处理后的…

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第22课-烟花插件的制作

【WEB前端2024】开源智体世界&#xff1a;乔布斯3D纪念馆-第22课-烟花插件的制作 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引…

UEC++学习(十五)创建、查找、加入会话

创建会话 基于上篇配置steam在线子系统之后&#xff0c;在Character.h中声明一个会话创建完成时的委托以及回调函数。 #include "Interfaces/OnlineSessionInterface.h"public://指向在线会话界面的指针,将会话接口存储在里面TSharedPtr<class IOnlineSession, ES…