许多使用DJI Mobile SDK来控制DJI产品的应用程序都具有相似的核心功能。它们通常有:
为了开发应用程序,开发者通常不得不在实现一些独特的应用功能之前,重复开发提供这些通用核心功能模块。
DJI UX SDK提供了具有这些核心功能的UI组件,因此可以加快开发者的开发时间。实际上,如果使用默认的UX SDK组件,开发者可以在不添加额外代码行的情况下,快速创建出类似以下应用程序效果:
开发人员可以自由地选择要加入,剔除或者自定义的UX SDK部分。
UX SDK目前支持DJI Mobile SDK v4.0及更高版本。
UX SDK具有三种主要的UI类型:
所有UI元素无需额外维护就可以简单地在应用程序中实现出来。这些UI元素已经和DJI Mobile SDK绑定在了一起,并且在实例化后更新相关信息。
Android 和 iOS UX SDK 的API文档中包含了可用UI元素的完整列表。
部件是UX SDK中最简单的组件。它通常代表一个简单的状态元素或提供一个简单的控件。一些部件的示例如下所示:
无人机电池百分比 |
飞行模式 |
图传信号强度 |
返航按钮 |
可以通过替换资源或子类化部件来定制部件。
替换资源可保留部件的行为和逻辑不变,但会改变其外观。
您资源尺寸大小和名称必须与现有资源相同,否则UX SDK将无法正确展示出来。如果UXSDK找不到所需的资源,它将在资源的中心位置附近绘制一个小的橙色正方形,以帮助提高可见性。
1.在此处 下载Xcode的asset资源目录(.xcassets)文件 2.从资源目录文件中删除您要替换的图像文件。请不要删除其他任何文件,包括contents.json。 3.添加您要使用的图像文件。确保它们具有与原始文件相同的名称 @2x/@3x,位于相同的位置,并且具有相同的大小。 4.在资源目录文件目录中运行asset-swap.sh脚本。该脚本会输出一个Assets.car文件到执行脚本的文件夹中。 5.用新生成的Assets.car文件替换DJIUXSDK.framework中的Assets.car文件。 6.您可能需要清空DerivedData文件夹并重置设备,以使这些更改生效。
UX SDK将自动获取并使用您的自定义图片文件。
注意: 图像文件必须与要替换的原始文件保持相同的名称,大小,@ 2x/@ 3x。 如果有任何差异, UX SDK可能无法正确绘制出图像。
可以将部件进行子类化,以重写initialize和view update方法进行外观自定义。为了易于定制,每个部件都会将正在使用的基础数据以属性参数的形式公开。 有关更多详细信息,请参考API 文档.
在Android中,子类化可以完全改变部件的行为和外观。步骤如下:
1.重写void initView(Context var1,AttributeSet var2,int var3)
并充气/初始化自定义布局。请记住,不要调用 super.initView()
方法。
2.要获取有关信息更改的更新,请重写命名为 ”onXXXChange” 模式的方法(例如,BatteryWidget
中的 onBatteryPercentageChange(int percentage)
方法)。每当电池百分比变化时,都会调用此方法。重写此方法将为您提供电池百分比的integer整数值。请记住,不要调用 super.initView()
方法。
3.要执行动作,请使用命名为performXXXAction
模式的方法。
部件集合以组织的方式将多个相关的部件组合在一起。它控制部件彼此之间的布局。
开发者也可以创建部件集合,并用于组织已存在的部件。
部件集合目前仅在iOS中使用。一些部件集合的示例如下所示:
状态信息栏部件集合 |
面板是具有丰富信息和控制能力的更复杂元素集合,例如设置菜单或飞行器状态列表。
面板的示例如下:
相机设置面板 |
相机曝光设置面板 |
飞行器状态列表 |
由于面板的复杂性,目前不提供自定义功能。
DJI UX SDK提供了以下示例代码工程: