Skip to content

通过源码自定义 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 等资源引用。
  • 2)确认图标资源名与引用方式

    • 常见引用方式包括 android:src / app:srcCompat / android:background 等。
    • 记录实际使用的资源名(例如 ic_search_list)。
  • 3)替换资源并运行验证

    • uiextensions_src/src/main/res/drawable* 目录下放置同名资源(例如 ic_search_list.xmlic_search_list.png),覆盖原资源。
    • 重新编译并运行 Demo,打开搜索面板验证图标是否已更新。

说明

以上为一个最小示例,用于说明“通过源码定制 UI 实现”的基本工作方式。您可以在 uiextensions_src 中按需修改布局、资源与实现逻辑,以满足产品 UI 设计与交互需求。