zoukankan      html  css  js  c++  java
  • 【转】关于颜色主题

    引言 

    bada –三星的智能手机平台-可以安装在不同显示器的不同设备上.下面的表格说明了Wave(第一个bada手机)和WaveWQ(Wave525, Wave533, Wave723)之间的区别.

     WaveWaveWQ
    类型 Super AMOLED TFT LCD
    尺寸 3.3" 3.2"
    分辨率 (像素) 480 x 800 240 x 400
    颜色深度 32-bit 16-bit

    <表 1. Wave 和 WaveWQ 显示>

    因为不同的显示器有不同的要求, bada支持WVGA和WQVGA分辨率, 并且使用两种不同的颜色主题. 这份文件说明了受支持的颜色主题, 与主题相关的系统颜色,及使用定制颜色的指南.

    受支持的颜色主题

    颜色主题定义了使用在某个设备上的缺省系统颜色的组成. 不同的显示器意味着设备展示颜色的不同能力,及不同的色域. 因为显示器的不同, 很难创建一个放之四海皆适用的主题. 为了安放不同的显示器, 需要创建多个主题.每个主题使用于特定的设备.bada平台现在有两个颜色主题:

     

    • 用于Wave的是黑色主题, 适合于支持WVGA分辨率的设备,颜色真实,支持alpha blend.
    • 用于WaveWQ的是白色主题,适用于支持WQVGA分辨率的设备, 支持16字节颜色.

    <图 1.黑色 Wave主题和白色WaveWQ主题>

    随着越来越多的bada设备的推出, 正根绝市场需要创建新的颜色主题.

    下面的图显示了颜色主题元素的名称, 而下表则定义了元素颜色的细节.

    <表2: 颜色主题元素的名称>

     Black themeWhite themeDescription
    SYSTEM_COLOR_FOREGROUND 透明 (0,0,0,0) 黑色 (0,0,0,255) 缺省前景色 (例如, 在Label 和 CheckButton中)
    SYSTEM_COLOR_BACKGROUND 透明 (0,0,0,0) 蓝灰 

    (200,211,226,255)

    缺省背景色 (例如, 在Label, Panel, 和ScrollPanel中)
    SYSTEM_COLOR_BODY_TEXT 黑色 (0,0,0,255) 黑色 (0,0,0,255) 出现在UI控件中的文本颜色
    SYSTEM_COLOR_FORM_BACKGROUND 黑色 (0,0,0,255) 蓝灰 

    (200,211,226,255)

    格式背景中的缺省颜色
    SYSTEM_COLOR_TITLE_TEXT 白色 

    (255,255,255,255)

    白色(255,255,255,255) 出现在指示器和指令域中的文本颜色(例如,Softkey, Title, 和 Tab中的颜色)
    SYSTEM_COLOR_LIST_BACKGROUND 透明 (0,0,0,0) 白色 

    (255,255,255,255)

    列表背景中的缺省颜色
    SYSTEM_COLOR_POPUP_BACKGROUND* 透明 (0,0,0,0) 浅蓝(221,227,244,255) 弹出背景中的缺省颜色
    SYSTEM_COLOR_FORM_GROUP_BACKGROUND 蓝灰 

    (41,51,60,255)

    蓝灰(200,211,226,255) 格式背景的缺省颜色, 分类的风格子控件
    SYSTEM_COLOR_LIST_ITEM_TEXT 白色 

    (255,255,255,255)

    黑色 

    (0,0,0,255)

    列表条目文本的缺省颜色
    SYSTEM_COLOR_LIST_ITEM_PRESSED_TEXT 白色

    (255,255,255,255)

    白色

    (255,255,255,255)

    当条目被按下,列表条目文本的缺省颜色
    SYSTEM_COLOR_LIST_ITEM_HIGHLIGHTED_TEXT 白色

    (255,255,255,255)

    白色(255,255,255,255) 当条目被强调时, 列表条目文本的缺省颜色
    SYSTEM_COLOR_GROUP_ITEM_TEXT 白色

    (255,255,255,255)

    天空蓝(0,189,246,255) 组项文本的缺省颜色

    <表 2. 元素的颜色细节>

    * 弹出窗口的真实背景颜色(SYSTEM_COLOR_POPUP_BACKGROUND)与背景主题的预定义颜色不同.大部分预定义系统颜色与真实的颜色一样,这就意味着如果你使用真实的颜色, 外侧边缘是看不到的.然而,弹出窗口的真实背景颜色是半透明的, 所以如果你使用那个颜色, 就可通过alpha blending更改边缘颜色, 这样外侧边缘就可见了.因为SYSTEM_COLOR_POPUP_BACKGROUND与真实的背景颜色不同, 使用它就可以获得适当的结果.

    使用白色主题利用弹出窗口

    当你将弹出窗口的Label或Panel放入一个白色主题中, 写下代码隐藏label或Panel的边缘. Label或Panel的背景颜色在黑色主题中是透明的, 与白色主题中的Form的颜色一致. 黑色主题中的效果不错, 但是在白色主题中, Label或Panel的边缘是可见的, 因为它使用的是Form的背景颜色, 这与弹出窗口的背景颜色一致.

    <图 3.白色主题的弹出窗口上可见的控制菜单边缘>

    控制菜单边缘问题可以使用以下代码解决:

     

     

    __pPopup->Construct(L"IDP_POPUP1");
     
    static_cast<Label *>(__pPopup->GetControl(L"IDC_LABEL1")) ->SetBackgroundColor(SYSTEM_COLOR_POPUP_BACKGROUND);
    static_cast<Panel *>(__pPopup->GetControl(L"IDC_PANEL1")) ->SetBackgroundColor(SYSTEM_COLOR_POPUP_BACKGROUND);

    <代码 1. 用于隐藏白色主题内控制菜单边缘的代码>

    SYSTEM_COLOR_POPUP_BACKGROUND 定义了弹出窗口上控件的背景颜色. 有了这个系统颜色, 你可以消除控制菜单的可见边缘.

    <表 4. H白色主题中弹出窗口的隐藏的控制菜单边缘>

    使用定制颜色

    下面的表说明如果你为UI控件使用了缺省系统颜色, 在不同的主题中如何保持颜色的一致性.

     

    如果一旦有可能,你就使用了缺省系统颜色, 你要确保程序总是有恰当的颜色, 即使它用在不同的颜色主题上,而非你之前为之创建的颜色主题. 如果你没有使用缺省颜色, 你必须注意你选择的定制颜色在不同的主题中的使用. 譬如, 如果你定义了一个全新的背景颜色, 记住更改前景颜色(反之亦然)以避免不可预期的结果.

    下面的表说明RGB (0, 0, 0)用于Label和Panel的背景颜色的一个场景. 黑色的Wave主题显示了一个恰当的结果, 而白色WaveWQ主题却没有. 因为程序使用定制颜色,而非缺省系统颜色, Label和Panel的背景颜色没有根据使用的主题自动更改.白色主题的前景颜色最后与背景颜色一样,从而导致文本不可见.

     

    <图6. Label 和Panel使用的定制背景颜色>

    原文翻译自:http://developer.bada.com/blog/?cat=1&paged=3

    转自:http://bada.csdn.net/page/dd:289482

  • 相关阅读:
    广播系统android安全:flag FLAG_RECEIVER_REGISTERED_ONLY的意义
    产品类大话设计模式——简单工厂模式
    打印数组算法:堆栈与深度优先搜索(迷宫问题)
    函数声明第四章利用函数实现指定的功能
    构造函数调用C++ 类和动态内存分配
    命令密码MySQL忘记密码恢复密码的实现方法
    线程资源PHP源码分析之线程安全模型
    编译类【COCOS2DXLUA 脚本开发之十四】解决自定义CPP类通过TOLUA++ BINDING LUACOCOS2D后编译到ANDROID运行黑屏(没有调用自定义CPP类)的问题!
    语句数据库ubuntu下mysql的常用命令
    eclipse中配置tomcat
  • 原文地址:https://www.cnblogs.com/omega/p/1948705.html
Copyright © 2011-2022 走看看