blockly android教程,【blockly入门指引】3,android-入门

开始

本指南面向希望创建自己的应用程序并将Blockly作为代码编辑器的Android开发人员。假设他们熟悉Blockly的使用,并且基本了解使用Android Studio的Java和应用程序开发。

主要步骤是:

下载并构建库.Download and build the library

创建项目并配置ActivityCreate the project and configure the activity

配置项目的依赖项Configure the project’s dependencies

扩展AbstractBlocklyActivity并实现必要的方法Extend AbstractBlocklyActivity

结果将是你自己的应用程序,看起来像Blockly Simple演示,一个工具箱充满块和一个大工作空间。

format,png

Get the Code

首先,从GitHub下载源代码。如果您知道如何使用Git或Subversion,我们强烈建议从我们的存储库同步,以便您的代码保持最新

ZIPfile

TAR Ball

GitHub

一旦你有代码,通过导入项目的根目录在Android Studio中打开它。你应该看到四个模块,第一个是blocklydemo。构建并运行blocklydemo以验证您的安装。

一旦构建,您会发现以下库文件

blockly-android/blocklylib-core/build/outputs/aar/blocklylib-core-release.aar

blockly-android/blocklylib-core/build/outputs/aar/blocklylib-core-debug.aar

blockly-android/blocklylib-vertical/build/outputs/aar/blocklylib-vertical-release.aar

blockly-android/blocklylib-vertical/build/outputs/aar/blocklylib-vertical-debug.aar

core文件包括模型和控制器类,以及视图的基类。vertical文件包括垂直堆叠块视图,由VerticalBlockViewFactory和相关的视图类定义。您将在项目中至少包含一个。

创建项目和Activity

如果您还没有应用程序项目,请使用“空活动”模板创建一个。Blockly需要16或更高的minSdkVersion。

如果使用现有应用程序,请向项目中添加“”Empty Activity”。

format,png

在任一情况下,您不需要生成带有活动的布局文件。您的块式活动最初将使用Blockly库提供的布局。

在AndroidManifest.xml文件的新中,将windowSoftInputMode设置如下:

android:windowSoftInputMode="stateHidden|adjustPan"

/>

windowSoftInputMode确保键盘在关闭位置启动,即使有键盘输入字段。它还将确保工作区在键盘(或其他IME)打开时显示此类字段。

在应用程序AppTheme中,在res / values / styles.xml中找到,将父主题设置为BlocklyVerticalTheme

...

此父样式配置块和字段的多个默认值。您可以在the style’s definition中找到更多详细信息。

Configure project dependencies

在应用程序项目中,打开File | Project Structure....确保应用程序模块包含库依赖关系…

com.android.support:support-v4

com.android.support:appcompat-v7

com.android.support:recyclerview-v7

用项目结构对话框中的“+”按钮将模块添加到项目中。选择“导入.JAR / .AAR软件包”模块模板,并从blockly-android项目目录中选择blocklylib-debug.aar或blocklylib-release.aar。然后,在应用程序模块依赖项中,将新模块添加为模块依赖项。

AndroidStudio-AddModule.jpg

导入这些.aar文件将它们复制到以下位置的项目目录中:

MyBlocklyApp/blocklylib-core-debug/blocklylib-core-debug.aar

MyBlocklyApp/blocklylib-core-release/blocklylib-core-release.aar

MyBlocklyApp/blocklylib-vertical-debug/blocklylib-vertical-debug.aar

MyBlocklyApp/blocklylib-vertical-release/blocklylib-vertical-release.aar

要更新项目中的Blockly库,只需将这些位置的副本替换为较新版本即可。

你可以添加调试和发布版本.aar文件,如果你想只有你的应用程序的调试生成完全调试信息。如果这样做,请确保应用程序模块依赖关系中的范围分别是“Debug compile”和“Release compile”

format,png

实现活动基类

***开发Android Blockly活动的最简单的方法是继承AbstractBlocklyActivity.我们强烈建议您将其用于您的第一个Blockly应用程序。该类有几个抽象方法,你需要重写,详细如下。下面的方法实现了SimpleActivity中的方法实现,您可以使用它作为参考

getToolboxContentsXmlPath()

getBlockDefinitionsJsonPaths()将assets /目录中的路径返回到块定义.json文件.

@Override protected String getToolboxContentsXmlPath(){

return "default/toolbox.xml";

}

getBlockDefinitionsJsonPaths()

getBlockDefinitionsJsonPaths()将assets /目录中的路径返回到块定义.json文件。下面的实现导入由Blockly库提供的默认块

@Override protected List < String > getBlockDefinitionsJsonPaths() {

return Arrays.asList(

"default/list_blocks.json",

"default/logic_blocks.json",

"default/loop_blocks.json",

"default/math_blocks.json",

"default/text_blocks.json",

"default/variable_blocks.json",

"default/colour_blocks.json"

);

}

注意:有关创建新块的详细信息,请参阅Add Custom Blocks。

getGeneratorsJsPaths()

getGeneratorsJsPaths()将assets /目录中的路径返回到定义块实现的生成器.js文件。当前的实现包括Blockly的默认块的所有JavaScript实现。

private static final List < String > JAVASCRIPT_GENERATORS = Arrays.asList(

// Custom block generators go here. Default blocks are already included.

);

@Override protected List < String > getGeneratorsJsPaths() {

return JAVASCRIPT_GENERATORS;

}

注意:详细了解使用Use Custom Generators中的生成器。

getCodeGenerationCallback()

getCodeGenerationCallback()返回用于将生成的代码返回到应用程序的回调。这在用户点击操作栏中的运行/播放按钮后调用。

CodeGenerationRequest.CodeGeneratorCallback mCodeGeneratorCallback = new LoggingCodeGeneratorCallback(this, "LoggingTag");

@Override protected CodeGenerationRequest.CodeGeneratorCallback getCodeGenerationCallback(){

// Uses the same callback for every generation call.

return mCodeGeneratorCallback;

}

onInitBlankWorkspace()

虽然不是一个抽象的方法,onInitBlankWorkspace()是目前需要定义可用的变量,如果你的应用程序包括default / variable_blocks.json。可变支持目前正在开发中。

@Override protected void onInitBlankWorkspace(){

// Initialize available variable names.

getController().addVariable("item");

}

下一步

在这一点上,应用程序应该编译和运行类似于SimpleActivity

。从这里,发展可以在几个不同的方向前进。您可以…

Customize the activity layout,为应用程序的导航和/或可视化留出空间。

在新块.json文件中定义和添加自定义块。Define and add custom blocks

自定义工具箱类别和块Customize the toolbox categories and blocks

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值