如何创建Android图表数据可视化应用程序?图表工具LightningChart助力轻松实现(上)

news2024/9/29 15:20:43

LightningChart JS 是一款高性能的 JavaScript 图表工具,专注于性能密集型、实时可视化图表解决方案。

LightningChart .JS | 下载试用icon-default.png?t=MBR7https://www.evget.com/product/4189/download本次我们将介绍如何使用Android Studio 和 LightningChart JS (IIFE)创建一个 android 图表数据可视化应用程序。

接下来的教程中,我们将使用 Ionic Capacitor 等其他框架,它们是构建移动应用程序必需的,所以建议安装本文中提到的所有工具。

一、项目概况

LightningChart JS 拥有大量适用于 JS 的高性能 Android 图表库,这些图表库都可以在 Android 应用程序中使用,同时您也可以通过LightningChart JS GitHub 模板来了解更多信息。

该应用程序将包含三个图表:

  • 音频频谱图
  • 渲染速度图
  • 蜡烛图交易

二、设置Android Studio

Android studio是一个免费的IDE,所以你有机会在Windows、macOS和Linux上使用它。你可以在这里下载Android Studio。
安装非常简单,您可以从这里获得官方的Android文档,然后进入SDK管理器,安装安卓的最新平台。

你可以安装你需要的所有平台,但我建议安装最新的平台,因为如果你想在 Google Play 控制台中发布你的 Android 图表应用程序,这就是其中的一个要求。

要完成 Android Studio 的设置,请安装适用于 Android 的 SDK 工具。您可以下载本文中展示的工具或选择您需要的工具。

下一件事情是安装最新的 Java SDK。安装这个SDK,您必须访问Oracle 官方网站,而且需要创建一个帐户。

三、开发工具

Gradle

Gradle是一个用于多语言软件开发的构建自动化工具。所以,Gradle对于移动应用程序来说将是非常重要的。你可以从这里得到和看到安装文档。
Gradle的安装基本上是把源文件复制到指定的路径上。
 

四、环境参数

有必要为 Android Studio、Java SDK 和 Gradle 创建环境变量。 您可以通过在 Windows 菜单中键入这些词来直接转到环境变量:

然后,点击【环境变量】按钮:

现在您只需要添加带有 android SDK 路径的变量:

接下来需要转到系统变量部分并编辑 [Path] 变量:

最后,只需添加 Java 路径和 Gradle 路径,然后在 Android Studio 中继续编写代码:

五、安卓项目

当你在android studio中打开app文件夹,你会看到一棵这样的树:

现在,让我们看看每个文件夹的解释以及类与 HTML 文件之间的关系。

清单 - AndroidManifest.xml

每个应用程序项目都必须在项目源集的根目录下有一个 AndroidManifest.xml 文件。清单文件向 Android 构建工具、Android 操作系统和 Google Play 描述了有关您的应用的基本信息。

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
        <activity android:name=".RenderingSpeedChart" android:exported="false"></activity>
        <activity android:name=".AudioSpectogramChart" android:exported="false"></activity>
        <activity android:name=".TradingChart" android:exported="false"></activity>
        <activity android:name=".MainActivity" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

在清单中,我们需要指定将在我们的应用程序中呈现窗口的类。 如果您转到 java/lightningChart 文件夹,您将看到一些与我们在 android 清单中具有相同名称的文件/类。 

这些名称应该与我们创建并要呈现的每个类相匹配, manifest 文件是一个非常重要的文件,以后你会用到这个文件来指定很多设置,比如深度链接属性。

Java / LightningChart

在每个文件中,我们可以创建函数来验证、修改或创建要在窗口中显示的元素。 默认情况下,您会找到[onCreate]函数

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chart_display);
final Bundle bundle = getIntent().getExtras();
webView = findViewById(R.id.chartDisplayWebView);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("file:///android_asset/AudioSpectogramChart.html");
}

onCreate]方法,将在活动被创建时被调用。换句话说,当我们点击一个引用特定活动的按钮时,[onCreate]方法将被调用,在这个方法中我们可以加载一个HTML文件(这个文件可以作为一个用户界面)。在[RenderingSpeedChart]文件里面,你会看到更多的代码。

class DataTask extends TimerTask {
        private WebView view;
        private Random random;
DataTask(WebView view) {
            this.view = view;
            this.random = new Random();
}
        @Override
public void run() {
            // Generate random float to show
            float f = random.nextFloat();
            final String data = Float.toString(f);
            // send the generated data to the WebView
            // method for sending depends on Android version
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
view.post(new Runnable() {
                    @Override
                    public void run() {
view.evaluateJavascript("addData('" + data + "')", null);
}
});
} else {
view.post(new Runnable() {
                    @Override
                    public void run() {
view.loadUrl("javascript:addData('" + data + "')");
}
});
}
} 

[ addData]函数位于正在加载的 HTML 文件中 ( file:///android_asset/RenderingSpeed.html )。我们正在访问 HTML 作为这个“控制器”的“视图”,使用 Android [WebView]类:

 “WebView 对象允许您将 Web 内容显示为活动布局的一部分,但缺少完全开发的浏览器的某些功能。当您需要增加对 UI 和高级配置选项的控制时,WebView 很有用,这些选项允许您将网页嵌入到专门为您的应用程序设计的环境中。” 参考
 

Java / LightningChart / MainActivity

MainActivity 将用作我们的[main()]方法。该组件是用户启动应用程序时出现的第一个屏幕。 从这个文件中,我们将声明将执行我们的活动的方法。这些方法可以通过按下一个 UI 对象来执行:

public void createRenderingSpeedChart(View view) {
Intent intent = new Intent(this, RenderingSpeedChart.class);
Bundle bundle = new Bundle();
bundle.putBoolean("useRandom", true);
intent.putExtras(bundle);
startActivity(intent);
}
    public void createAudioSpectogramChart(View view) {
Intent intent = new Intent(this, AudioSpectogramChart.class);
Bundle bundle = new Bundle();
bundle.putBoolean("useRandom", true);
intent.putExtras(bundle);
startActivity(intent);
}
    public void createTradingChart(View view) {
Intent intent = new Intent(this, TradingChart.class);
Bundle bundle = new Bundle();
bundle.putBoolean("useRandom", true);
intent.putExtras(bundle);
startActivity(intent);
}

六、布局

在创建新项目时,我们会在 Layout 文件夹中发现一些 XML 文件:

activity_main.xml 将作为默认接口工作,它将与我们的 MainActivity 类相关。 如果打开该文件,您将看到一个包含每个图表按钮的设计器:

您可以在此处添加 UI 控件。如果单击每个按钮,您将在窗口右侧看到属性面板。 在 [text] 属性中,您可以设置要在应用程序中显示的文本。

在 [onClick] 属性中,您可以指定将调用活动的方法的名称。此方法应位于 MainActivity 类中。
 

七、资产文件夹

在创建新项目时,我们会在 Layout 文件夹中发现一些 XML 文件:
activity_main.xml 将作为默认接口工作,它将与我们的 MainActivity 类相关。 如果打开该文件,您将看到一个包含每个图表按钮的设计器:
在此文件夹中,您将找到将为活动加载的 HTML 文件。此外,您还会找到一个 JSON 文件,其中包含频谱图的源数据。

IIFE.js 文件包含创建 LC JS 图表所需的所有函数和属性。在之前的文章中,我们已经回顾了频谱图和渲染图。在使用 Android 图表时,请随时查看它们以获取更多参考。

今天关于“如何用LightningChart创建Android图表数据可视化应用程序”第一部分的介绍到这里了,点击查看LightningChart系列教程。

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

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

相关文章

Linux基础-学会使用命令帮助

概述 Linux 命令及其参数繁多&#xff0c;大多数人都是无法记住全部功能和具体参数意思的。在 linux 终端&#xff0c;面对命令不知道怎么用&#xff0c;或不记得命令的拼写及参数时&#xff0c;我们需要求助于系统的帮助文档&#xff1b; linux 系统内置的帮助文档很详细&…

KubeSphere多租户系统

目录 &#x1f9e1;多租户系统层级 &#x1f360;集群 &#x1f360;企业空间 &#x1f360;项目 &#x1f49f;这里是CS大白话专场&#xff0c;让枯燥的学习变得有趣&#xff01; &#x1f49f;没有对象不要怕&#xff0c;我们new一个出来&#xff0c;每天对ta说不尽情话&…

路由器OpenConnect图文教程

前提需求 openwrt 路由器或其他能够部署 OpenConnect 的设备建议 上行 30M的宽带以保证使用体验拥有 公网 IP并配置端口映射本文以 openwrt 路由器内网网段 192.168.1.0 为例. 基本设置 登录 OpenWRT路由器,打开 服务 – OpenConnect . 勾选 Enable server 启动服务 默认端…

第005课 - 项目微服务划分图

文章目录 项目微服务划分图项目微服务划分图 admin-vue是面向工作人员使用的前端系统。 shop-vue是面向用户使用的前端系统。 当然我们可以有手机app和小程序。 请求通过api到达微服务群。 业务微服务群: 商品服务优惠服务仓储服务订单服务中央认证服务支付服务用户服务秒杀…

Kubernetes 正式发布 v1.26,稳定性显著提升

太平洋时间 2022 年 12 月 8 号 Kubernetes 正式发布了主题为 Electrifying 的 v1.26。 作为 2022 年最后的一个版本&#xff0c;增加了很多新的功能&#xff0c;同时在稳定性上也得到显著提升&#xff0c;我们将从以下多个角度来介绍 1.26 版本的更新。 更新概览&#xff1a…

app渗透为何一开启代理就断网?

前言 今天测试app&#xff0c;开启安卓代理&#xff0c;一点击准备登录时&#xff0c;抛出了如下提示“java.security.cert.CertPathValidatorException: Trust anchor for certification path not found”&#xff0c;大概意思就是证书的安全性问题 而当我把代理关闭了&#…

一、常用文件管理命令

目录1、LinuxOS 基本文件结构2、文件常用指令1、LinuxOS 基本文件结构 几种路径&#xff1a; 绝对路径&#xff1a;以 / 开头相对路径当前路径&#xff1a;.上一级路径&#xff1a;..home 目录&#xff1a;~/ 2、文件常用指令 ctrl c&#xff1a;取消命令&#xff0c;并且换…

Ubuntu设置USB设备别名

Ubuntu设置USB设备别名硬件连接软件设置更新电平转换芯片的serial创建设备别名使用设备别名硬件连接 ROS主控通过usb线连接到一个TTL电平转换芯片&#xff0c;再由这个电平转换芯片连接STM32芯片 电平转换芯片可以通过PCB设计在STM32芯片的电路板上&#xff0c;也可以使用一个…

2022-12-29 [整理]flex弹性布局

文章目录0.前言1.设置flex布局后的父子元素2.容器(父元素)的属性3.项目(子元素)的属性4.示例一:flex布局实现flex容器中子元素的水平垂直居中5.示例二:flex:1实现子元素平分flex容器宽度6.示例三:换行,多行布局7.示例四:flex-grow,flex-shrink和flex-basis属性的使用7.1.flex-g…

磨金石教育摄影技能干货分享|优秀艺术类摄影作品欣赏

前面我们分析过纪实类摄影和创意类摄影&#xff0c;艺术类还是第一次讲。 它与纪实类的不同点在于&#xff0c;艺术类摄影更注重作者的主观感受&#xff0c;更侧重个人创造性。 摄影师和画家一样&#xff0c;在经历过人生的挫折、现实与理想交织&#xff0c;内心世界往往是丰富…

[年终总结]满意但不满足

看了看去年的总结,哈哈哈哈,还好我对我自己有自知之明,就给自己定了三个目标 亲密关系这块,我觉得自己是做到了 虽然记性很差,连每周跟妈妈视频这种事情都要写在滴答清单里面才能想到,但感觉我的亲密关系,要比以前好很多 在我开心时,有朋友比我还要开心;在我失落时,我能从朋友…

反重力铸造工艺中的高精度快速压力调节解决方案

摘要&#xff1a;针对客户调压铸造炉对真空压力控制系统的技术要求&#xff0c;本文介绍了相应的解决方案和验证试验。方案的技术核心是基于高速动态平衡法&#xff0c;采用大流量压力控制装置&#xff0c;与传感器和真空压力控制器组成PID闭环控制回路&#xff0c;其特点是可快…

深度学习知识速成 I 深度学习工具链名词解释 深度学习原理

深度学习工具链名词解释 更新时间 更新内容 2022年12月29日 初始化 这个是实习的时候自己做的笔记&#xff0c;这里重新整理成文档。需要具有最基本的 CNN 深度学习基础&#xff0c;我的上一篇文章就够了。主要是为了做毕设。 数据工具和框架 数据建模 数据&#xff1a;…

iServer使用影像服务(一)——影像服务的介绍和使用

前言 SuperMap iServer 11i系列提供了影像服务扩展模块&#xff0c;可以将大规模影像或栅格数据快速发布为影像服务&#xff1b;影像服务提供了一种通过Web服务来管理和访问影像或栅格数据的方式。 应用场景 影像服务主要应用场景包括&#xff1a; 直接将现有的影像或栅格数…

群狼调研圆满完成人才住房和保障性住房居民满意度调查

群狼调研圆满完成人才住房和保障性住房居民满意度调查 近期&#xff0c;群狼调研&#xff08;第三方市场调查&#xff09;受某地住房研究会委托&#xff0c;对该市人才住房和保障性住房住户进行居民满意度调查工作。 本次调查以线下拦截填报调查问卷以及实地考察的方式开展&a…

恶意软件如何被用来创建虚假的过期证书警报

2021 年 9 月&#xff0c;数字安全专家发现了针对 Windows 用户的广泛攻击。 该攻击使用恶意软件在网站上发出虚假的过期证书警报&#xff0c;提示用户下载更新&#xff0c;而更新实际上包含允许黑客远程访问受感染计算机的恶意软件。 以下是攻击的执行方式、我们目前对其影响…

实习证明| 大数据在线实习项目意义

实习&#xff0c;在实践中学习&#xff0c;任何的知识源于实践&#xff0c;归于实践&#xff0c;最终也要通过实践进行检验&#xff0c;它是衔接学生在校学习与步入社会两个阶段的重要桥梁。一个好的实习机会&#xff0c;会帮助学生积累工作经验、验证职业选择、提升综合素质。…

基于电影评论数据的中文情感分析(含训练数据、验证数据) ,已实现NN(MLP)、CNN、LSTM方法

基于电影评论数据的中文情感分析(含训练数据、验证数据) &#xff0c;已实现NN(MLP)、CNN、LSTM方法 完整代码下载地址&#xff1a;基于电影评论数据的中文情感分析(含训练数据、验证数据) 基于电影评论数据的中文情感分析 1).数据集 使用电影评论数据作为训练数据集. 其中,…

DaoCloud 结合 Karmada 打造新一代企业级多云平台

上周 Cloud Native Days China 南京站 Meetup 顺利举行&#xff0c;「DaoCloud 道客」大容器团队技术负责人-张潇在会上以《DaoCloud 结合 Karmada 打造新一代企业级多云平台》为主题&#xff0c;与 Karmada 社区及其合作伙伴一起&#xff0c;共同交流云原生多云多集群生产实践…

第04讲:在IDEA中使用Git

一、添加忽略的文件 第1步&#xff1a;创建git.ignore文件 windows系统在用户的家目录创建git.ignore文件&#xff08;C:\Users[用户名]\git.ignore&#xff09;&#xff0c;复制如下代码到文件并保存 # Compiled class file *.class # Log file *.log # BlueJ files *.ctxt…