【翻译】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://xiahunao.cn/news/3019824.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

社交媒体数据恢复:多闪

社交软件多闪是一款深受用户喜爱的社交应用&#xff0c;用于与朋友、家人保持联系。有时&#xff0c;多闪软件的聊天记录可能会丢失或被删除&#xff0c;这时用户需要进行数据恢复。本文将详细介绍多闪软件聊天记录的恢复过程。 一、多闪软件聊天记录恢复方法 从手机备份中恢…

Docker 容器中 PHP 使用 Curl 访问本地服务异常

在 Docker 环境中&#xff0c;将应用程序和服务容器化是常见的做法&#xff0c;但是有时会遇到一些网络通信方面的问题。其中一个常见的问题是 PHP 容器无法使用 Curl 访问本地服务&#xff0c;这可能导致开发和调试过程中的困扰。 问题描述 通常情况下&#xff0c;我们会将 …

PCIE协议-1

1. PCIe结构拓扑 一个结构由点对点的链路组成&#xff0c;这些链路将一组组件互相连接 - 图1-2展示了一个结构拓扑示例。该图展示了一个称为层级结构的单一结构实例&#xff0c;由一个根复合体&#xff08;Root Complex, RC&#xff09;、多个端点&#xff08;I/O设备&#xf…

Failed to build flash-attn:ERROR: Could not build wheels for flash-attn

安装 FlashAttention 的时候遇到报错&#xff1a; Failed to build flash-attn ERROR: Could not build wheels for flash-attn, which is required to install pyproject.toml-based projects可能是安装的版本与环境存在冲突吧&#xff0c;我的环境是&#xff1a; python 3.1…

vector、heap数组、stack数组访问性能验证

测试目的 本次测试旨在比较不同数据结构&#xff08;vector、数组&#xff09;以及不同访问方法&#xff08;[]、at()、offset&#xff09;在性能上的差异&#xff0c;从而为开发者提供在特定情境下做出最佳选择的依据。 测试代码 测试网址:Quick C Benchmarks 使用GCC9.5 …

网盘应用:桌面端界面欣赏,这个赛道容不下小玩家。

网盘&#xff08;Cloud Storage&#xff09;是一种云存储服务&#xff0c;允许用户在互联网上存储、管理和共享文件。它提供了一个在线的虚拟硬盘&#xff0c;用户可以通过网络将文件上传到云端&#xff0c;并随时随地访问和管理这些文件。 阿里云盘

王道数据结构个人向笔记-第二章(线性表)

文章目录 2.1 线性表的定义和基本操作2.2 顺序表2.2.1 顺序表的定义2.2.2 顺序表的插入、删除&#xff08;实现是基于静态分配&#xff09;2.2.3 顺序表的查找 2.3 链表2.3.1 单链表的定义2.3.2 单链表的插入删除2.3.3 单链表的查找2.3.4 单链表的建立2.3.4 双链表2.3.5 循环链…

React18+TS+NestJS+GraphQL 全栈开发在线教育平台

高质量平台级应用流行全栈技术实用职场技巧通用面试策略React18TSNestJSGraphQL 全栈开发在线教育平台&#xff08;完结&#xff09; 黑石老师&#xff0c;大厂技术专家&#xff0c;深耕前后端十多年。发现很多的前端同学都面临如下的职业困扰&#xff1a;没有能拿的出手的面试…

机器人系统ros2-开发实践07-将机器人的状态广播到 tf2(Python)

上个教程将静态坐标系广播到 tf2&#xff0c;基于这个基础原理这个教程将演示机器人的点位状态发布到tf2 1. 写入广播节点 我们首先创建源文件。转到learning_tf2_py我们在上一教程中创建的包。在src/learning_tf2_py/learning_tf2_py目录中输入以下命令来下载示例广播示例代码…

EXCEL数据快速上传至SAP透明表

文章目录 前言一、案例介绍/笔者需求二、备份数据三、数据处理转化 a.EXCEL转为TXT注意事项 b.EXCEL转为TXT 四、ABAP结合内表更新数据至透明表 a.代码实现 b.断点TXT上传至内表 c.查看上传结果 五、总结 前言 这篇文章…

OpenSPG docker 安装教程

文章目录 前言自述 一、OpenSPG1.介绍 二、安装步骤1.安装服务端2.客户端部署 前言 自述 我最近是想结合chatglm3-6b和知识图谱做一个垂直领域的技术规范的问答系统&#xff0c;过程中也遇到了很多困难&#xff0c;在模型微调上&#xff0c;在数据集收集整理上&#xff0c;在知…

【Qt 学习笔记】Qt常用控件 | 输入类控件 | Dial的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 输入类控件 | Dial的使用及说明 文章编号&#xff1a;Qt…

【intro】GraphSAGE

论文 https://arxiv.org/pdf/1706.02216 abstract 大图中节点的低维embedding已经被证明在各种预测任务中非常有用&#xff0c;然而&#xff0c;大多数现有的方法要求在embedding训练期间图中的所有节点都存在;这些先前的方法属于直推式&#xff08;transductive&#xff09…

女性名字有孤寡数,易离婚

丁老师&#xff1a;您好&#xff01;我孩子&#xff08;女孩&#xff09;准备取名&#xff1a;周小程&#xff0c;宝宝出生于阳历2016年8月13号16时30分左右&#xff0c;准备给孩子取个名字&#xff0c;在网上查询了哈&#xff0c;这个名字的分数还蛮高的&#xff0c;99分&…

Mitmproxy 抓包工具安装使用

简介 Mitmproxy是一个使用python编写的中间人代理工具&#xff0c;跟Fiddle、Charles等等的抓包工具是差不多的&#xff0c;同样可以用于拦截、修改、保存http/https请求。比起Fiddle、Charles&#xff0c;mitmproxy有一个最大的特点是支持python自定义脚本。 安装 Win 官网…

【重塑世界的火种】制造业:从匠人之心到智能未来之旅

在人类文明的宏伟乐章中&#xff0c;有一段旋律始终激昂&#xff0c;它既古老又现代&#xff0c;既是力量的象征&#xff0c;也是智慧的结晶——这就是制造业&#xff0c;一个将梦想变为现实&#xff0c;将创意铸就为生活的神奇领域。今天&#xff0c;让我们一起走进这个塑造世…

【ITK配准】第七期 尺度(Metric)- 均方Metric

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享ITK中的均方Metric,即itk::MeanSquaresImageToImageMetricv4,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力…

携手并进:OpenCSG与博云科技共同探索DevOps的AI化之路

01 DevOps AI化迫在眉睫 数字化转型的浪潮席卷全球&#xff0c;企业对于提升研发效能和软件交付质量的需求日益迫切。在这一背景下&#xff0c;AIGC的发展为DevOps带来了革命性的变化。近日&#xff0c;OpenCSG与云计算解决方案服务商博云宣布建立战略合作伙伴关系&#xff0c…

FebHost:为什么注册法国.FR域名?

注册 .FR 域名&#xff0c;意味着您的网站将主要面向法国市场。法国不仅是欧盟内购买力第二强的经济体&#xff0c;也是全球第七大经济体。值得注意的是&#xff0c;法语是29个国家的官方语言&#xff0c;使用人数约达2.7亿。一旦您拥有了 .FR 域名&#xff0c;就能向这个具有强…

C++算法题 - 二叉树层次遍历

目录 199. 二叉树的右视图637. 二叉树的层平均值102. 二叉树的层序遍历103. 二叉树的锯齿形层序遍历 199. 二叉树的右视图 LeetCode_link 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节…