【翻译】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;

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

90%前端就职小厂,你却说React是国内主流,做人不可以这么扯淡。

有人在自媒体上大放厥词&#xff0c;说赶紧放弃vue&#xff0c;拥抱react吧&#xff0c;vue是过家家的&#xff0c;大厂没有用的&#xff0c;你去问问有多人前端在大厂&#xff0c;做人不可以扯淡。但凡你去调查研究&#xff0c;你就发现大厂很少用vue&#xff0c;同样也很少用…

MySQL安装教程(自定义安装)

参考博主https://blog.csdn.net/m0_71422677/article/details/136007088 一、从mysql官网安装 今天分享的是Windows系统下MySQL的安装教程&#xff0c;打开MySQL官网https://www.mysql.com/downloads/ 这里选择第二个 等待下载完成&#xff0c;下载完成后&#xff0c;双击打开…

微火全域外卖系统是什么?为什么市场占有率这么高?

近日&#xff0c;全域外卖领域又出现了新变动&#xff0c;一个名为微火的品牌凭借着其全域外卖系统&#xff0c;在短短几个月的时间里&#xff0c;就占领了大部分市场。截止发稿日期前&#xff0c;微火全域外卖系统的市场占有率已经超过48%。 据了解&#xff0c;所谓的全域外卖…

使用perf查看热点函数和系统调用最大延迟函数

1、安装perf工具 1.1、ubuntu 18.04 x86下的安装 安装sudo apt install linux-source sudo apt install linux-tools-uname -r # ubuntu 18.04虚拟机实操可行 1.2、ubuntu 18.04 ARM下的安装 参考 Nvidia Jetson系列产品安装Perf ​ARM64版本的Ubuntu上安装perf 与参考文…

24年考研管综199真题PDF共18页

整理了24年考研管综199真题PDF共18页&#xff0c;包含问题求解&#xff0c;条件充分性判断&#xff0c;逻辑推理&#xff0c;写作&#xff0c;几个部分&#xff0c;希望对大家有所帮助 一、问题求解 这部分包含15道小题&#xff0c;每题3分&#xff0c;共45分。题目类型为选择…

一文搞懂大厂商品中心设计!

点击下方“JavaEdge”&#xff0c;选择“设为星标” 第一时间关注技术干货&#xff01; 免责声明~ 任何文章不要过度深思&#xff01; 万事万物都经不起审视&#xff0c;因为世上没有同样的成长环境&#xff0c;也没有同样的认知水平&#xff0c;更「没有适用于所有人的解决方案…

linux的寻找文件

题目 介绍 有一个非常重要的文件 sources.list)但是你忘了 它在哪了&#xff0c;你依稀记得它在 /etc/ 目录下&#xff0c;现在要你 把这个文件找出来&#xff0c;然后设置成自己(shiyanlou 用 户)可以访问&#xff0c;但是其他用户并不能访问。 目标 1.找到 sources.list 文件…

vue3 element-plus表单form验证规则设置的require:true无效

必填项为空校验&#xff0c;valid第一次为true&#xff0c;再点值为false 引入FormInstance &#xff0c;校验代码改为以下&#xff1a; import { ElMessage, FormInstance } from element-plus const ruleFormRef ref<FormInstance>()const submitForm async (formEl:…

23.右值引用_c++11(左值引用的使用场景、右值引用的使用场景、左值引用和右值引用的对比、移动构造、移动赋值、右值引用完美转发)

传统的C语法中就有引用的语法&#xff0c;而C11中新增了的右值引用语法特性&#xff0c;所以从现在开始我们之前学习的引用就叫做左值引用。无论左值引用还是右值引用&#xff0c;都是给对象取别名。 4.右值引用 4.1 左值引用和右值引用 什么是左值&#xff1f;什么是左值引…

AI助力制造行业探索创新路径

近期&#xff0c;著名科技作家凯文凯利&#xff08;K.K.&#xff09;来到中国&#xff0c;发表了一场演讲,给广大听众带来了深刻的启示。他在演讲中强调了人工智能&#xff08;AI&#xff09;对全球经济的重大影响&#xff0c;并提出了AI发展的多个观点&#xff1a; AI的多样性…

Llama 3 超级课堂

https://github.com/SmartFlowAI/Llama3-Tutorial/tree/main 第一节作业 streamlit run web_demo.py /root/share/new_models/meta-llama/Meta-Llama-3-8B-Instruct

计算机网络-IPv6地址配置

前面我们学习了IPv6地址的类型、ICMPv6在IPv6中的应用&#xff0c;现在来看下具体到IPv6的地址配置方式与路由配置。 一、IPV6地址配置过程 前面我们知道单播地址包括&#xff1a;全球单播地址、唯一本地地址、链路本地地址等&#xff0c;一般情况下日常使用较多的是链路本地地…

4000定制网站,因为没有案例,客户走了

接到一个要做企业站点的客户&#xff0c;属于定制开发&#xff0c;预算4000看起来是不是还行的一个订单&#xff1f; 接单第一步&#xff1a;筛客户 从客户询盘的那一刻开始就要围绕核心要素&#xff1a;预算和工期&#xff0c;凡是不符合预期的一律放掉就好了&#xff0c;没必…

基于springboot的校园食堂订餐系统

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

基于参数化建模的3D产品组态实现

我们最近为荷兰设计师家具制造商 KILO 发布了基于网络的 3D 配置器的第一个生产版本。我们使用了 Salsita 3D 配置器&#xff0c;这是一个内部 SDK&#xff0c;使新的 3D 配置器的实施变得轻而易举。虽然它给我们带来了巨大帮助&#xff0c;但我们仍然面临一些有趣的挑战。 NSD…

新一代智慧音视频平台,企业必备新基建

随着5G、云计算、实时音视频、多模态、大模型、数字人等前沿技术的发展&#xff0c;企业与客户的交互方式正加速趋于移动化、视频化。 国家有关部门也相继出台系列政策法规&#xff0c;确保线上业务安全合规&#xff0c;以保障消费者权益。如&#xff0c;针对保险、银行、证券…

思维导图怎么画?一文掌握绘制技巧

思维导图怎么画&#xff1f;你是不是还在为不知道怎么绘制思维导图而困惑&#xff1f;别担心&#xff0c;看完这篇文章就可以掌握绘制思维导图的基础步骤了。一起来看看吧&#xff01; 一、思维导图的基本结构 思维导图通常由中心节点、分支节点和子节点组成。中心节点是思维导…

【基于 PyTorch 的 Python深度学习】5 机器学习基础(1)

前言 文章性质&#xff1a;学习笔记 &#x1f4d6; 学习资料&#xff1a;吴茂贵《 Python 深度学习基于 PyTorch ( 第 2 版 ) 》【ISBN】978-7-111-71880-2 主要内容&#xff1a;根据学习资料撰写的学习笔记&#xff0c;该篇主要介绍了机器学习的基本任务、机器学习的一般流程&…

活动预约小程序源码系统 自定义预约表单+收费项目 带完整的安装代码包以及系统部署教程

数字化时代的快速发展&#xff0c;活动预约管理已经成为许多企业和个人不可或缺的一部分。为满足这一需求&#xff0c;我们特别开发了一款活动预约小程序源码系统&#xff0c;该系统不仅具备自定义预约表单的功能&#xff0c;还支持收费项目&#xff0c;旨在为用户提供更加便捷…

Garden Planner for Mac/win:打造您专属的绿意空间

随着城市化进程的加速&#xff0c;绿色空间对于现代人来说愈发珍贵。为满足人们对美好生活的追求&#xff0c;我们特推出了一款功能强大的园林绿化设计软件——Garden Planner for Mac/win。这款软件将帮助您轻松规划和设计您的花园、菜园或庭院&#xff0c;让绿意成为您生活的…