`

自定义AIR mobile应用的样式或皮肤

 
阅读更多

环境:

Adobe Flash Builder 4.5.1 + Flex SDK4.5.1 + AIR SDK 2.7

 

参考资料:

Flex移动皮肤-第一部分:增强的皮肤功能基础   (英文原文

Flex移动skin – 第2部分:处理不同的像素密度

Flex移动skin – 第3部分: 多平台开发

A custom-skinned mobile Flex application

Tutorial: Styling the ActionBar

iOS Theme for Flex Mobile Projects – Proof of Concept

iOS TitleWindow Skin

 

mobile项目的默认主题为Mobile,该主题相关的源文件位于:Adobe Flash Builder 4.5 \sdks\4.5.1\frameworks\projects\mobiletheme\

mobile skin的特点:

1. 一般为AS(性能优于mxml)实现;

2. 引用的背景等一般为fxg文件;

3. 通常需要针对160、240、320dpi分别设置大小、边距等。

 

1. Button

1) 默认skin:spark.skins.mobile.ButtonSkin

2) 自定义需求:使用背景图片

a) 方法1:

在构造函数里设置 upBorderSkin , downBorderSkin 的值(可以是图片、也可以是fxg)即可(layoutGap, layoutCornerEllipseSize , measuredDefaultHeight 等属性也在构造函数中设置,如需修改,为其赋新值即可)。

b) 方法2:

override getBorderClassForCurrentState 方法:

override protected function getBorderClassForCurrentState():Class
{
	upBorderSkin = hostComponent.getStyle("upSkin");
	downBorderSkin = hostComponent.getStyle("downSkin");
			
	return super.getBorderClassForCurrentState();
}

3) 常用样式属性:color , chromeColor , skinClass , upSkin , downSkin

 

2. CheckBox

1) 默认skin:spark.skins.mobile.CheckBoxSkin

2) 自定义需求:使用自定义的样式(图片)

方法:

在构造函数里设置 upBorderSkin , upSelectedIconClass , downIconClass 的值(可以是图片、也可以是fxg)即可(iconClass相关的属性总共有8个,用自定义的图片的话一般来说只要改写3个值即可,其他几项分别设为与相近状态一致的值即可,如:downSelectedIconClass = upSelectedIconClass; ),通常还需调整下layoutGap , layoutBorderSize 的值。

3) 常用样式属性:symbolColorskinClass

 

3. AntionBar

1) 默认skin:spark.skins.mobile.ActionBarSkin

2) 自定义需求:使用自定义的背景图片

方法:

a) override  createChildren 方法,调用super方法前,增加以下代码:

if (hostComponent.getStyle("backgroundImage"))
{
    // Image is below everything else in the display list.
    backgroundImage = new Image();
    backgroundImage.source = hostComponent.getStyle("backgroundImage");
    addChild(backgroundImage);
}

b) 同时 override  layoutContents 方法,调用 super 方法后,增加以下代码:

if (backgroundImage)
{
    setElementSize(backgroundImage, unscaledWidth, unscaledHeight);
}

c) css 里设置 backgroundImage。

3) 常用样式:

a) 设置 defaultButtonAppearance: beveled; 表示按钮使用 ios 风格

b) 设置ios风格下的导航按钮属性:

s|ActionBar.beveled s|Group#navigationGroup s|Button
{
...
} 

c) 设置ios风格下的操作按钮属性:

s|ActionBar.beveled s|Group#actionGroup s|Button
{
...
}

d) 设置标题文字属性:

s|ActionBar #titleDisplay
{
    fontSize: 50;
    ...
}

 

4. View

1) 默认skin:spark.skins.mobile.SkinnableContainerSkin

2) 自定义需求:使用背景图片

方法:

a)  override  createChildren 方法(同 ActionBar 的处理):

b) 同时 override  layoutContents 方法,调用 super 方法后,增加以下代码:

if (backgroundImage)
{
    // Set the height of backgroundImage.
    titleHeight = hostComponent.getStyle("titleHeight");
    if (isNaN(titleHeight))
    {
        // "titleHeight" default value equals to 10mm.
        switch (applicationDPI)
        {
            case DPIClassification.DPI_320:
            {
                titleHeight = 126;
							
                break;
            }
            case DPIClassification.DPI_240:
            {
                titleHeight = 94;
							
                break;
            }
            default:
            {
                // default DPI_160
                titleHeight = 63;
							
                break;
            }
        }
    }
    setElementSize(backgroundImage, unscaledWidth, titleHeight);
}

c) css 里设置 backgroundImage。

3) 常用样式属性:skinClass

 

 

待续。。。

 

 

分享到:
评论

相关推荐

    Flex开发Android 更改ViewMenu外观

    在Android平台上,Flex应用程序可以借助Adobe AIR SDK进行编译,生成可以在Android设备上运行的APK文件,如`MobileTest.apk`所示。ViewMenu是Flex中一个常用的组件,用于呈现一组可选择的选项,类似于Android原生的...

    Flex 移动效果 界面 最大化

    例如,使用`MobileSkin`类创建的皮肤更适合手指操作,而使用`spark.skins.mobile.MobileApplicationSkin`可以为整个应用提供统一的移动风格。 6. **事件监听**:监听设备的屏幕旋转事件(如`resize`事件)可以实现...

    flex-sdk-4.5.0.20967.zip

    3. **移动设备支持**:Flex 4.5开始支持Adobe AIR for mobile,使得开发者可以创建跨平台的移动应用。 4. **性能优化**:提升了编译速度和运行时性能,减少了内存占用,优化了对大规模应用的支持。 5. **Flex模块...

    Flex 4 in Action

    进一步,学习如何创建自定义组件,以满足特定项目需求,包括自定义样式和皮肤。 6. **移动开发**:了解如何使用Flex SDK为移动设备开发应用,包括Gumbo和Mobile Project的支持,以及针对不同平台(如iOS和Android)...

    FlexDemo3

    9. **Mobile Development**: 虽然最初Flex主要是为桌面浏览器设计的,但随着Adobe AIR的推出,Flex也可用于开发跨平台的桌面和移动应用程序。FlexDemo3可能展示了如何在移动设备上实现类似的功能。 10. **Flex模版...

    Flex4权威指南 清晰中文版

    10. **Mobile应用开发**:虽然Flex 4主要是为桌面Web应用设计,但通过Adobe AIR,开发者可以利用Flex技术构建跨平台的移动应用程序。 通过《Flex4权威指南》清晰中文版的学习,读者可以全面理解Flex 4的体系结构,...

    Flex4 中文API

    7. **Skinning and Theming**:Spark组件支持皮肤和主题,开发者可以通过定义CSS样式和自定义皮肤类来改变组件的外观,实现一致的UI风格。 8. **Mobile Development**:Flex4也扩展到了移动应用开发,通过Adobe AIR...

    Flex手机项目代码

    Adobe AIR SDK允许Flex应用运行在iOS和Android等移动设备上,提供了与原生应用类似的用户体验。 8. **文件名列表**:在提供的文件名列表中,只有"Mobile",这可能是项目的主目录或者包含了项目的主要代码和资源文件...

    flex学习资料

    10. **Flex与移动设备**:Flex也支持开发移动应用,通过Adobe AIR技术可以在iOS、Android等平台上运行。了解如何为移动设备优化Flex应用,以及使用Mobile Profile进行开发,可以扩展你的开发领域。 通过深入学习和...

    flex4 视频教程截取的一些图片

    9. **Mobile Development**:Flex 4.5 开始支持移动应用开发,引入了 Adobe AIR 平台,使得开发者可以使用相同的 Flex 技术开发跨平台的移动应用。 10. **Flex Builder**:Adobe Flex Builder 是一个集成开发环境...

    J2MEapi英文文档,html格式

    9. **打包和部署**:J2ME应用程序通常被打包成JAR文件,并通过无线应用协议(WAP)或OTA(Over-the-Air)方式部署到设备上。 10. **模拟器**:开发者可以使用J2ME的模拟器来测试和调试应用程序,模拟器模仿目标设备...

    flex电子资料

    9. **Mobile Development**:随着移动设备的普及,Flex也扩展到了移动平台,通过Adobe AIR(Adobe Integrated Runtime)可以在iOS、Android等平台上创建原生应用。 10. **Flex和Spark Architecture**:Flex 4引入了...

    Flex4权威指南源代码

    12. **Mobile支持**:Flex 4扩展到了移动领域,Flex 4.5引入了针对Android和iOS设备的Air SDK,允许开发者创建跨平台的移动应用。 通过《Flex4权威指南》的源代码,开发者可以学习到如何有效地运用这些技术,从简单...

    flex题目大全

    - Flex Builder 4同样支持多种项目类型,包括Flex项目、Flex Mobile项目、Adobe AIR应用程序等。 #### 26. 什么是RSL,如何使用? - **答案**:RSL(Runtime Shared Library)是在运行时按需加载的共享库。使用...

Global site tag (gtag.js) - Google Analytics