通过源码自定义 UI 实现(uiextensions_src)
当您不希望仅在“内置 UI 框架”中做开关或局部调整,而是希望 重构/替换 UI 实现 时,可以通过引入 uiextensions_src 源码工程进行深度定制。
说明
- 本节介绍的是 UI Extensions 的 UI 实现定制方式(通过修改
uiextensions_src源码工程实现)。 - 若您需要定制扫描等独立模块的 UI,可参考本节的工程组织与修改方法,但具体实现与资源目录以对应模块为准。
- 本节以
samples/viewer_ctrl_demo为示例:该工程结构精简、便于演示“引入源码工程 → 修改布局/资源 → 运行验证”的完整流程;同样的方法也适用于您的业务工程。
步骤 1:将 uiextensions_src 引入工程
前置条件
uiextensions_src依赖FoxitRDK.aar。建议保持 SDK 的默认目录结构(两者位于同一libs目录层级)。若您调整了目录结构,需要同步修改uiextensions_src工程中对FoxitRDK.aar的引用路径。viewer_ctrl_demo工程默认已配置FoxitRDK.aar,因此本节只需额外引入uiextensions_src并切换依赖即可。
1.1 在 settings.gradle 中 引入源码工程
kotlin
include ':app'
include ':uiextensions_src'
project(':uiextensions_src').projectDir = new File('../../libs/uiextensions_src/')
1.2 在 app/build.gradle 中切换依赖
将 uiextensions_src 作为依赖引入,并移除/注释 FoxitRDKUIExtensions.aar 依赖,示例片段如下:
kotlin
dependencies {
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.multidex:multidex:2.0.1'
implementation (name: 'FoxitRDK', ext: 'aar')
// implementation(name:'FoxitRDKUIExtensions', ext:'aar')
implementation project(":uiextensions_src")
implementation 'com.edmodo:cropper:1.0.1'
implementation 'com.microsoft.identity.client:msal:2.2.0'
implementation(name: 'RMSSDK-4.2-release', ext: 'aar')
implementation(name: 'rms-sdk-ui', ext: 'aar')
implementation 'org.bouncycastle:bcpkix-jdk15on:1.60'
implementation 'org.bouncycastle:bcprov-jdk15on:1.60'
// RxJava
implementation "io.reactivex.rxjava2:rxjava:2.2.16"
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
}
步骤 2:修改 UI 布局与资源(示例:替换搜索面板按钮图标)
本示例演示一个最常见的源码定制方式:通过修改布局 XML 与替换资源 来改变内置 UI 的显示效果。
示例思路是:定位到 uiextensions_src/src/main/res/layout/search_layout.xml 中按钮使用的图标资源名(例如 ic_search_list),然后在 drawable(或对应 density 目录)下用同名资源替换即可。
例如,可使用同目录下的 ic_search_next.xml 替换 ic_search_list.xml,从而改变该按钮图标。
推荐按以下步骤操作:
1)定位布局文件
- 在 Android Studio 中打开
uiextensions_src/src/main/res/layout/search_layout.xml。 - 在 Layout Editor 的预览界面中找到目标按钮,点击后跳转到对应 XML 节点;或直接在文件中查找
ic_search_list等资源引用。
- 在 Android Studio 中打开
2)确认图标资源名与引用方式
- 常见引用方式包括
android:src/app:srcCompat/android:background等。 - 记录实际使用的资源名(例如
ic_search_list)。
- 常见引用方式包括
3)替换资源并运行验证
- 在
uiextensions_src/src/main/res/drawable*目录下放置同名资源(例如ic_search_list.xml或ic_search_list.png),覆盖原资源。 - 重新编译并运行 Demo,打开搜索面板验证图标是否已更新。
- 在
说明
以上为一个最小示例,用于说明“通过源码定制 UI 实现”的基本工作方式。您可以在 uiextensions_src 中按需修改布局、资源与实现逻辑,以满足产品 UI 设计与交互需求。