SDK:主题色配置业务包

Posted IoT砖家涂拉拉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SDK:主题色配置业务包相关的知识,希望对你有一定的参考价值。

涂鸦主题色配置业务包用于配置涂鸦 SDK 中 UI 相关的各种颜色。通过插件生成相关的静态资源文件,以及通过 SDK 动态获取相应色值,使用这些颜色开发页面,从而使 UI 业务包提供的界面和开发者自己搭建的界面达到颜色效果的一致性。

准备工作

创建工程

android Studio 中建立工程,接入智能生活 App SDK 并完成业务包框架接入。

主题色配置

本主题色配置是可选功能插件,当接入使用本插件及其组件时,在接入整体业务包框架时,则不需要配置相关的 res/values/colors.xml 主题资源配置以及 assets/tyTheme/ui_theme_config.json 主题色 assets 资源配置。

具体地,需要删除这两个资源配置,保证接入主题色配置业务包插件后不存在资源冲突的问题。

接入组件

// in rootProject build.gradle
buildscript
    dependencies
        // 声明插件版本
        classpath "com.tuya.smart:tuyasmart-theme-open-plugin:1.1.0"
    


// in application / library build.gradle
dependencies 
    // 依赖运行时库
    implementation "com.tuya.smart:tuyasmart-theme-open:1.1.0"

初始化

通过在工程的 build.gradle 中配置以下信息,可以完成自动生成对应静态主题色值的资源。

也可以通过涂鸦 IoT 平台的 主题配置 进行对应的设置效果。

apply plugin: 'com.tuya.open.theme'
tuyaOpenTheme
    // 浅色模式配置,目前不支持深色模式的配置
    lightTheme 
        color
            // 背景色
            backgroundColor "#F8F8F8"
            // 主题色
            themeColor "#FF5A28"
            // 警告色
            warningColor "#FF4444"
            // 提示色
            tipColor "#00CC99"
            // 引导色
            guideColor "#1989FA"
            // tab选中背景色
            tabBarSelectColor "#FF5A28"
            // 导航栏背景色配置
            navigationBarColor "#FFFFFF"
        
        colorAlpha
            // 弹窗蒙层透明度
            alertMaskAlpha 0.8
        
    

功能调用

通过 TuyaOptimusSdk.getManager(ITYThemeManager.class),可以获取到对应的功能。

interface ITYThemeManager 
    /**
     * 主题色,通常作为按钮的背景色
     * @return Int
     */
    @ColorInt
    fun getThemeColor() : Int

    /**
     * 警告颜色,通常作为警告性控件的背景色,一般用来强烈的警告用户,吸引用户的注意
     * @return Int
     */
    @ColorInt
    fun getWarningColor() : Int

    /**
     * 提示颜色,通常作为提示性控件的背景色,一般用来对用户的交互进行响应
     * @return Int
     */
    @ColorInt
    fun getTipsColor() : Int

    /**
     * 引导颜色,通常作为引导性控件的背景色,一般用来对用户进行引导
     * @return Int
     */
    @ColorInt
    fun getGuideColor() : Int

    /**
     * tab栏选中颜色
     * @return Int
     */
    @ColorInt
    fun getTabBarSelectedColor() : Int

    /**
     * 背景色,app界面的背景色
     * @return Int
     */
    @ColorInt
    fun getBackgroundColor() : Int

    /**
     * 导航栏背景色
     * @return Int
     */
    @ColorInt
    fun getNavigatorBgColor() : Int

    /**
     * 底部tab栏背景色
     * @return Int
     */
    @ColorInt
    fun getBottomTabBarBgColor() : Int

    /**
     * 卡片背景色
     * @return Int
     */
    @ColorInt
    fun getCardBgColor() : Int

    /**
     * 弹窗内容背景色
     * @return Int
     */
    @ColorInt
    fun getAlertBgColor() : Int

    /**
     * 弹窗蒙层色
     * @return Int
     */
    @ColorInt
    fun getAlertMaskColor() : Int

    /**
     * 列表单元格背景颜色
     * @return Int
     */
    @ColorInt
    fun getListCellBgColor() : Int

    /**
     * 大标题文字颜色
     * @return Int
     */
    @ColorInt
    fun getHeadLineColor() : Int

    /**
     * 小标题文字颜色
     * @return Int
     */
    @ColorInt
    fun getSubHeadColor() : Int

    /**
     * 辅助文字颜色
     * @return Int
     */
    @ColorInt
    fun getAuxiLibiaryColor() : Int

    /**
     * 失效文字颜色
     * @return Int
     */
    @ColorInt
    fun getDisableColor() : Int

    /**
     * 主题背景下文字的颜色
     * @return Int
     */
    @ColorInt
    fun getThemeTextColor() : Int

    /**
     * 警告颜色下文字的颜色,通常作为警告性控件上文本的颜色,一般用来强烈的警告用户,吸引用户的注意
     * @return Int
     */
    fun getWarningTextColor() : Int

    /**
     * 提示颜色下文字的颜色,通常作为提示性控件上文本的颜色,一般用来对用户的交互进行响应
     * @return Int
     */
    @ColorInt
    fun getTipsTextColor() : Int

    /**
     * 引导颜色下文字的颜色,通常作为引导性控件上文本的颜色,一般用来对用户进行引导
     * @return Int
     */
    @ColorInt
    fun getGuideTextColor() : Int

    /**
     * 导航栏内的文字颜色
     * @return Int
     */
    @ColorInt
    fun getNavigatorTextColor() : Int

而当你需要调用静态资源时,可以直接调用应用 Module 在 tysrc/ui-open-theme-values 路径内生成的资源文件内的色值。

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <!--
Automatically generated files, please do not modify it manually!!!
-->
    <color name="ty_theme_open_color_theme">#ffff5a28</color>
    <color name="ty_theme_open_color_warning">#ffff4444</color>
    <color name="ty_theme_open_color_tips">#ff00cc99</color>
    <color name="ty_theme_open_color_guide">#ff1989fa</color>
    <color name="ty_theme_open_color_tab_bar_selected">#ffff5a28</color>
    <color name="ty_theme_open_color_background">#fff8f8f8</color>
    <color name="ty_theme_open_color_navigator_bg">#ffffffff</color>
    <color name="ty_theme_open_color_bottom_tab_bar">#ffffffff</color>
    <color name="ty_theme_open_color_card_bg">#ffffffff</color>
    <color name="ty_theme_open_color_alert_bg">#ffffffff</color>
    <color name="ty_theme_open_color_alert_mask">#ffff5a28</color>
    <color name="ty_theme_open_color_list_cell_bg">#ffff5a28</color>
    <color name="ty_theme_open_color_head_line_text">#e6000000</color>
    <color name="ty_theme_open_color_sub_head_text">#b3000000</color>
    <color name="ty_theme_open_color_auxi_libiary_text">#80000000</color>
    <color name="ty_theme_open_color_disable_text">#4c000000</color>
    <color name="ty_theme_open_color_theme_text">#ffffffff</color>
    <color name="ty_theme_open_color_warning_text">#ffffffff</color>
    <color name="ty_theme_open_color_tips_text">#ffffffff</color>
    <color name="ty_theme_open_color_guide_text">#ffffffff</color>
</resources>

以上是关于SDK:主题色配置业务包的主要内容,如果未能解决你的问题,请参考以下文章

什么是安卓版 UI 业务包 SDK?如何接入?

什么是安卓版 UI 业务包 SDK?如何接入?

Qt - Quick控件配置文件(qtquickcontrols2.conf)

前端设置任何颜色作为主题色方法(不用预先指定固定几种),吐血整理!

如何为 Material-ui 的组件设置主要的浅色/深色?我正在使用像这里这样的自定义主题

如何在 Storybook 6.0 中自定义深色和浅色主题