You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by bi...@apache.org on 2014/03/28 23:16:46 UTC

[3/3] git commit: [flex-sdk] [refs/heads/new_android_skins] - Android 4.x skins for Checkbox. Modified existing skinclass to eliminate need for creating FXG assets for every supported DPI.

Android 4.x skins for Checkbox.
Modified existing skinclass to eliminate need for creating FXG assets for every supported DPI.


Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/10f8840f
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/10f8840f
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/10f8840f

Branch: refs/heads/new_android_skins
Commit: 10f8840fbeac08002e73ab44bfc210bf3534cd99
Parents: d1fa5de
Author: Om <bi...@gmail.com>
Authored: Fri Mar 28 14:56:11 2014 -0700
Committer: Om <bi...@gmail.com>
Committed: Fri Mar 28 14:56:11 2014 -0700

----------------------------------------------------------------------
 .../src/spark/skins/android4/CheckBoxSkin.as    | 475 ++++++++++---------
 .../skins/android4/assets/CheckBox_down.fxg     |  21 +-
 .../android4/assets/CheckBox_downSelected.fxg   |  35 ++
 .../assets/CheckBox_downSymbolSelected.fxg      |  21 +-
 .../android4/assets/CheckBox_downUnselected.fxg |  15 -
 .../spark/skins/android4/assets/CheckBox_up.fxg |  36 +-
 .../android4/assets/CheckBox_upSelected.fxg     |  29 ++
 .../assets/CheckBox_upSymbolSelected.fxg        |  35 +-
 8 files changed, 393 insertions(+), 274 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/10f8840f/frameworks/projects/mobiletheme/src/spark/skins/android4/CheckBoxSkin.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/mobiletheme/src/spark/skins/android4/CheckBoxSkin.as b/frameworks/projects/mobiletheme/src/spark/skins/android4/CheckBoxSkin.as
index 416d85f..f091205 100644
--- a/frameworks/projects/mobiletheme/src/spark/skins/android4/CheckBoxSkin.as
+++ b/frameworks/projects/mobiletheme/src/spark/skins/android4/CheckBoxSkin.as
@@ -19,249 +19,250 @@
 
 package spark.skins.android4
 {
-import flash.display.DisplayObject;
+	import flash.display.DisplayObject;
+	
+	import mx.core.DPIClassification;
+	
+	import spark.skins.android4.assets.CheckBox_up;
+	import spark.skins.mobile.supportClasses.SelectableButtonSkinBase;
+	
+	/**
+	 *  ActionScript-based skin for CheckBox components in mobile applications. 
+	 * 
+	 *  @see spark.components.CheckBox
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 2.5 
+	 *  @productversion Flex 4.5
+	 */
+	public class CheckBoxSkin extends SelectableButtonSkinBase
+	{
+		//--------------------------------------------------------------------------
+		//
+		//  Class constants
+		//
+		//--------------------------------------------------------------------------
+		
+		private static const exclusions:Array = ["labelDisplay", "labelDisplayShadow"];
 
-import mx.core.DPIClassification;
+		//--------------------------------------------------------------------------
+		//
+		//  Member variables
+		//
+		//--------------------------------------------------------------------------
 
-import spark.skins.android4.assets.CheckBox_up;
-import spark.skins.mobile.supportClasses.SelectableButtonSkinBase;
-import spark.skins.mobile120.assets.CheckBox_down;
-import spark.skins.mobile120.assets.CheckBox_downSymbol;
-import spark.skins.mobile120.assets.CheckBox_downSymbolSelected;
-import spark.skins.mobile120.assets.CheckBox_up;
-import spark.skins.mobile120.assets.CheckBox_upSymbol;
-import spark.skins.mobile120.assets.CheckBox_upSymbolSelected;
-import spark.skins.mobile160.assets.CheckBox_down;
-import spark.skins.mobile160.assets.CheckBox_downSymbol;
-import spark.skins.mobile160.assets.CheckBox_downSymbolSelected;
-import spark.skins.mobile160.assets.CheckBox_up;
-import spark.skins.mobile160.assets.CheckBox_upSymbol;
-import spark.skins.mobile160.assets.CheckBox_upSymbolSelected;
-import spark.skins.mobile240.assets.CheckBox_down;
-import spark.skins.mobile240.assets.CheckBox_downSymbol;
-import spark.skins.mobile240.assets.CheckBox_downSymbolSelected;
-import spark.skins.mobile240.assets.CheckBox_up;
-import spark.skins.mobile240.assets.CheckBox_upSymbol;
-import spark.skins.mobile240.assets.CheckBox_upSymbolSelected;
-import spark.skins.mobile320.assets.CheckBox_down;
-import spark.skins.mobile320.assets.CheckBox_downSymbol;
-import spark.skins.mobile320.assets.CheckBox_downSymbolSelected;
-import spark.skins.mobile320.assets.CheckBox_up;
-import spark.skins.mobile320.assets.CheckBox_upSymbol;
-import spark.skins.mobile320.assets.CheckBox_upSymbolSelected;
-import spark.skins.mobile480.assets.CheckBox_down;
-import spark.skins.mobile480.assets.CheckBox_downSymbol;
-import spark.skins.mobile480.assets.CheckBox_downSymbolSelected;
-import spark.skins.mobile480.assets.CheckBox_up;
-import spark.skins.mobile480.assets.CheckBox_upSymbol;
-import spark.skins.mobile480.assets.CheckBox_upSymbolSelected;
-import spark.skins.mobile640.assets.CheckBox_down;
-import spark.skins.mobile640.assets.CheckBox_downSymbol;
-import spark.skins.mobile640.assets.CheckBox_downSymbolSelected;
-import spark.skins.mobile640.assets.CheckBox_up;
-import spark.skins.mobile640.assets.CheckBox_upSymbol;
-import spark.skins.mobile640.assets.CheckBox_upSymbolSelected;
-
-/**
- *  ActionScript-based skin for CheckBox components in mobile applications. 
- * 
- *  @see spark.components.CheckBox
- * 
- *  @langversion 3.0
- *  @playerversion Flash 10
- *  @playerversion AIR 2.5 
- *  @productversion Flex 4.5
- */
-public class CheckBoxSkin extends SelectableButtonSkinBase
-{
-    //--------------------------------------------------------------------------
-    //
-    //  Class constants
-    //
-    //--------------------------------------------------------------------------
-    
-    private static const exclusions:Array = ["labelDisplay", "labelDisplayShadow"];
-    
-    //--------------------------------------------------------------------------
-    //
-    //  Constructor
-    //
-    //--------------------------------------------------------------------------
-    
-    /**
-     *  Constructor.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    public function CheckBoxSkin()
-    {
-        super();
-        
-        layoutPaddingLeft = 0;
-        layoutPaddingRight = 0;
-        layoutPaddingTop = 0;
-        layoutPaddingBottom = 0;
-        
-        switch (applicationDPI)
-        {
-			case DPIClassification.DPI_640:
+		protected var symbolOffsetX:Number;
+		protected var symbolOffsetY:Number;
+		protected var iconWidth:Number;
+		protected var iconHeight:Number;
+		protected var symbolWidth:Number;
+		protected var symbolHeight:Number;
+		
+		//--------------------------------------------------------------------------
+		//
+		//  Constructor
+		//
+		//--------------------------------------------------------------------------
+		
+		/**
+		 *  Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		public function CheckBoxSkin()
+		{
+			super();
+			
+			layoutPaddingLeft = 0;
+			layoutPaddingRight = 0;
+			layoutPaddingTop = 0;
+			layoutPaddingBottom = 0;
+			
+			upIconClass = spark.skins.android4.assets.CheckBox_up;
+			upSelectedIconClass = spark.skins.android4.assets.CheckBox_upSelected;
+			downIconClass = spark.skins.android4.assets.CheckBox_down;
+			downSelectedIconClass = spark.skins.android4.assets.CheckBox_downSelected;
+			upSymbolIconClass = null;
+			upSymbolIconSelectedClass = spark.skins.android4.assets.CheckBox_upSymbolSelected;
+			downSymbolIconSelectedClass = spark.skins.android4.assets.CheckBox_downSymbolSelected;
+			downSymbolIconClass = null;
+					
+			switch (applicationDPI)
 			{
-				upIconClass = spark.skins.mobile640.assets.CheckBox_up;
-				upSelectedIconClass = spark.skins.mobile640.assets.CheckBox_up;
-				downIconClass = spark.skins.mobile640.assets.CheckBox_down;
-				downSelectedIconClass = spark.skins.mobile640.assets.CheckBox_down;
-				upSymbolIconClass = spark.skins.mobile640.assets.CheckBox_upSymbol;
-				upSymbolIconSelectedClass = spark.skins.mobile640.assets.CheckBox_upSymbolSelected;
-				downSymbolIconClass = spark.skins.mobile640.assets.CheckBox_downSymbol;
-				downSymbolIconSelectedClass = spark.skins.mobile640.assets.CheckBox_downSymbolSelected;
-				
-				layoutGap = 40;
-				minWidth = 128;
-				minHeight = 128;
-				layoutBorderSize = 6;
-				
-				break;
+				case DPIClassification.DPI_640:
+				{
+					
+					layoutGap = 16;
+					minWidth = 128;
+					minHeight = 128;
+					layoutBorderSize = 6;
+					iconWidth = 128;
+					iconHeight = 128;
+					symbolWidth = 64;
+					symbolHeight = 64;
+					symbolOffsetX = 32;
+					symbolOffsetY = 32;
+					
+					break;
+				}
+				case DPIClassification.DPI_480:
+				{
+					
+					layoutGap = 12;
+					minWidth = 96;
+					minHeight = 96;
+					layoutBorderSize = 4;
+					iconWidth = 96;
+					iconHeight = 96;
+					symbolWidth = 48;
+					symbolHeight = 48;
+					symbolOffsetX = 24;
+					symbolOffsetY = 24;
+					
+					break;
+				}
+				case DPIClassification.DPI_320:
+				{
+					
+					layoutGap = 8;
+					minWidth = 64;
+					minHeight = 64;
+					layoutBorderSize = 3;
+					iconWidth = 64;
+					iconHeight = 64;
+					symbolWidth = 32;
+					symbolHeight = 32;
+					symbolOffsetX = 16;
+					symbolOffsetY = 16;
+					
+					break;
+				}
+				case DPIClassification.DPI_240:
+				{
+					
+					layoutGap = 6;
+					minWidth = 48;
+					minHeight = 48;
+					layoutBorderSize = 2;
+					iconWidth = 48;
+					iconHeight = 48;
+					symbolWidth = 24;
+					symbolHeight = 24;
+					symbolOffsetX = 12;
+					symbolOffsetY = 12;
+					
+					break;
+				}
+				case DPIClassification.DPI_120:
+				{
+					
+					layoutGap = 3;
+					minWidth = 24;
+					minHeight = 24;
+					layoutBorderSize = 1;
+					iconWidth = 24;
+					iconHeight = 24;
+					symbolWidth = 12;
+					symbolHeight = 12;
+					symbolOffsetX = 6;
+					symbolOffsetY = 6;
+					
+					break;
+				}
+				default:
+				{
+					// default DPI_160
+					
+					layoutGap = 4;
+					minWidth = 32;
+					minHeight = 32;
+					layoutBorderSize = 2;
+					iconWidth = 32;
+					iconHeight = 32;
+					symbolWidth = 16;
+					symbolHeight = 16;
+					symbolOffsetX = 8;
+					symbolOffsetY = 8;
+					
+					
+					break;
+				}
 			}
-			case DPIClassification.DPI_480:
+		}
+		
+		//--------------------------------------------------------------------------
+		//
+		//  Overridden methods
+		//
+		//--------------------------------------------------------------------------
+		
+		/**
+		 *  @private
+		 *  CheckBox <code>chromeColor</code> is drawn to match the FXG rectangle
+		 *  shape and position.
+		 */
+		override protected function drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
+		{
+			// super draws a transparent hit zone
+			super.drawBackground(unscaledWidth, unscaledHeight);
+			
+			// get the size and position of iconDisplay
+			var currentIcon:DisplayObject = getIconDisplay();
+			var widthAdjustment:Number = layoutBorderSize * 2;
+			
+			graphics.beginFill(getStyle("chromeColor"));
+			graphics.drawRoundRect(currentIcon.x + layoutBorderSize,
+				currentIcon.y + layoutBorderSize,
+				currentIcon.width - widthAdjustment,
+				currentIcon.height - widthAdjustment, layoutBorderSize, layoutBorderSize);
+			graphics.endFill();
+		}
+		
+		/**
+		 *  List of IDs of items that should be excluded when rendering the focus ring.
+		 *  Only items of type DisplayObject or GraphicElement should be excluded. Items
+		 *  of other types are ignored.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10
+		 *  @playerversion AIR 2.5
+		 *  @productversion Flex 4.5
+		 */
+		override protected function get focusSkinExclusions():Array 
+		{
+			return exclusions;
+		}
+		
+		override protected function commitCurrentState():void
+		{
+			super.commitCurrentState();
+			if(symbolIcon != null)
 			{
-				// Note provisional may need changes
-				upIconClass = spark.skins.mobile480.assets.CheckBox_up;
-				upSelectedIconClass = spark.skins.mobile480.assets.CheckBox_up;
-				downIconClass = spark.skins.mobile480.assets.CheckBox_down;
-				downSelectedIconClass = spark.skins.mobile480.assets.CheckBox_down;
-				upSymbolIconClass = spark.skins.mobile480.assets.CheckBox_upSymbol;
-				upSymbolIconSelectedClass = spark.skins.mobile480.assets.CheckBox_upSymbolSelected;
-				downSymbolIconClass = spark.skins.mobile480.assets.CheckBox_downSymbol;
-				downSymbolIconSelectedClass = spark.skins.mobile480.assets.CheckBox_downSymbolSelected;
-				
-				layoutGap = 30;
-				minWidth = 96;
-				minHeight = 96;
-				layoutBorderSize = 4;
-				
-				break;
+				symbolIcon.width = symbolWidth;
+				symbolIcon.height = symbolHeight;
 			}
-            case DPIClassification.DPI_320:
-            {
-                upIconClass = spark.skins.mobile320.assets.CheckBox_up;
-                upSelectedIconClass = spark.skins.mobile320.assets.CheckBox_up;
-                downIconClass = spark.skins.mobile320.assets.CheckBox_down;
-                downSelectedIconClass = spark.skins.mobile320.assets.CheckBox_down;
-                upSymbolIconClass = spark.skins.mobile320.assets.CheckBox_upSymbol;
-                upSymbolIconSelectedClass = spark.skins.mobile320.assets.CheckBox_upSymbolSelected;
-                downSymbolIconClass = spark.skins.mobile320.assets.CheckBox_downSymbol;
-                downSymbolIconSelectedClass = spark.skins.mobile320.assets.CheckBox_downSymbolSelected;
-                 
-                layoutGap = 20;
-                minWidth = 64;
-                minHeight = 64;
-                layoutBorderSize = 3;
-                
-                break;
-            }
-            case DPIClassification.DPI_240:
-            {
-
-				upIconClass = spark.skins.android4.assets.CheckBox_up;
-				upSelectedIconClass = spark.skins.android4.assets.CheckBox_up;
-				downIconClass = spark.skins.android4.assets.CheckBox_downUnselected;
-				downSelectedIconClass = spark.skins.android4.assets.CheckBox_down;
-				upSymbolIconClass = null;
-				upSymbolIconSelectedClass = spark.skins.android4.assets.CheckBox_upSymbolSelected;
-				downSymbolIconSelectedClass = spark.skins.android4.assets.CheckBox_downSymbolSelected;
-				downSymbolIconClass = spark.skins.android4.assets.CheckBox_downUnselected;
-				
-                layoutGap = 15;
-                minWidth = 48;
-                minHeight = 48;
-                layoutBorderSize = 2;
-                
-                break;
-            }
-			case DPIClassification.DPI_120:
+			var iconDisplay:DisplayObject = getIconDisplay(); 
+			if(iconDisplay != null)
 			{
-				upIconClass = spark.skins.mobile120.assets.CheckBox_up;
-				upSelectedIconClass = spark.skins.mobile120.assets.CheckBox_up;
-				downIconClass = spark.skins.mobile120.assets.CheckBox_down;
-				downSelectedIconClass = spark.skins.mobile120.assets.CheckBox_down;
-				upSymbolIconClass = spark.skins.mobile120.assets.CheckBox_upSymbol;
-				upSymbolIconSelectedClass = spark.skins.mobile120.assets.CheckBox_upSymbolSelected;
-				downSymbolIconClass = spark.skins.mobile120.assets.CheckBox_downSymbol;
-				downSymbolIconSelectedClass = spark.skins.mobile120.assets.CheckBox_downSymbolSelected;
-				
-				layoutGap = 8;
-				minWidth = 24;
-				minHeight = 24;
-				layoutBorderSize = 1;
-				
-				break;
+				iconDisplay.width = iconWidth;
+				iconDisplay.height = iconHeight;
 			}
-            default:
-            {
-                // default DPI_160
-                upIconClass = spark.skins.mobile160.assets.CheckBox_up;
-                upSelectedIconClass = spark.skins.mobile160.assets.CheckBox_up;
-                downIconClass = spark.skins.mobile160.assets.CheckBox_down;
-                downSelectedIconClass = spark.skins.mobile160.assets.CheckBox_down;
-                upSymbolIconClass = spark.skins.mobile160.assets.CheckBox_upSymbol;
-                upSymbolIconSelectedClass = spark.skins.mobile160.assets.CheckBox_upSymbolSelected;
-                downSymbolIconClass = spark.skins.mobile160.assets.CheckBox_downSymbol;
-                downSymbolIconSelectedClass = spark.skins.mobile160.assets.CheckBox_downSymbolSelected;
-                
-                layoutGap = 10;
-                minWidth = 32;
-                minHeight = 32;
-                layoutBorderSize = 2;
-                
-                break;
-            }
-        }
-    }
-    
-    //--------------------------------------------------------------------------
-    //
-    //  Overridden methods
-    //
-    //--------------------------------------------------------------------------
-    
-    /**
-     *  @private
-     *  CheckBox <code>chromeColor</code> is drawn to match the FXG rectangle
-     *  shape and position.
-     */
-    override protected function drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
-    {
-        // super draws a transparent hit zone
-        super.drawBackground(unscaledWidth, unscaledHeight);
-
-        // get the size and position of iconDisplay
-        var currentIcon:DisplayObject = getIconDisplay();
-        var widthAdjustment:Number = layoutBorderSize * 2;
-        
-        graphics.beginFill(getStyle("chromeColor"));
-        graphics.drawRoundRect(currentIcon.x + layoutBorderSize,
-            currentIcon.y + layoutBorderSize,
-            currentIcon.width - widthAdjustment,
-            currentIcon.height - widthAdjustment, layoutBorderSize, layoutBorderSize);
-        graphics.endFill();
-    }
-    
-    /**
-     *  List of IDs of items that should be excluded when rendering the focus ring.
-     *  Only items of type DisplayObject or GraphicElement should be excluded. Items
-     *  of other types are ignored.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    override protected function get focusSkinExclusions():Array 
-    {
-        return exclusions;
-    }
-}
+		}
+		
+		override protected function layoutContents(unscaledWidth:Number, unscaledHeight:Number):void
+		{
+			super.layoutContents(unscaledWidth, unscaledHeight);
+			// position the symbols to align with the background "icon"
+			if (symbolIcon)
+			{
+				var currentIcon:DisplayObject = getIconDisplay();
+				setElementPosition(symbolIcon, symbolOffsetX, symbolOffsetY);
+			}
+		}
+		
+	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/10f8840f/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_down.fxg
----------------------------------------------------------------------
diff --git a/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_down.fxg b/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_down.fxg
index 3c49ba1..426df3d 100644
--- a/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_down.fxg
+++ b/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_down.fxg
@@ -1,3 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
 <Graphic version="2.0" xmlns="http://ns.adobe.com/fxg/2008">
   <Group scaleGridLeft="8" scaleGridRight="24" scaleGridTop="24" scaleGridBottom="8">
     <Path winding="nonZero" data="M32 31.001C32 31.5527 31.5527 32 31.001 32L0.999023 32C0.447266 32 0 31.5527 0 31.001L0 0.999023C0 0.447266 0.447266 0 0.999023 0L31.001 0C31.5527 0 32 0.447266 32 0.999023L32 31.001Z">
@@ -10,6 +30,5 @@
         <SolidColor color="#676767"/>
       </fill>
     </Path>
-    <Path visible="false" winding="nonZero" data="M0 0 32 0 32 32 0 32 0 0Z"/>
   </Group>
 </Graphic>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/10f8840f/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_downSelected.fxg
----------------------------------------------------------------------
diff --git a/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_downSelected.fxg b/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_downSelected.fxg
new file mode 100644
index 0000000..ea7c3c4
--- /dev/null
+++ b/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_downSelected.fxg
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+<Graphic version="2.0" xmlns="http://ns.adobe.com/fxg/2008">
+  <Group scaleGridLeft="8" scaleGridRight="24" scaleGridTop="24" scaleGridBottom="8">
+    <Path winding="nonZero" data="M32 31.001C32 31.5527 31.5527 32 31.001 32L0.999023 32C0.447266 32 0 31.5527 0 31.001L0 0.999023C0 0.447266 0.447266 0 0.999023 0L31.001 0C31.5527 0 32 0.447266 32 0.999023L32 31.001Z">
+      <fill>
+        <SolidColor color="#DEDEDD"/>
+      </fill>
+    </Path>
+    <Path x="8" y="8" winding="nonZero" data="M15 7 15 15 1 15 1 1 14 1 14 0 0 0 0 16 16 16 16 7 15 7Z">
+      <fill>
+        <SolidColor color="#676767"/>
+      </fill>
+    </Path>
+    <Path visible="false" winding="nonZero" data="M0 0 32 0 32 32 0 32 0 0Z"/>
+  </Group>
+</Graphic>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/10f8840f/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_downSymbolSelected.fxg
----------------------------------------------------------------------
diff --git a/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_downSymbolSelected.fxg b/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_downSymbolSelected.fxg
index da3e719..f59d001 100644
--- a/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_downSymbolSelected.fxg
+++ b/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_downSymbolSelected.fxg
@@ -1,3 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
 <Graphic version="2.0" xmlns="http://ns.adobe.com/fxg/2008">
   <Group scaleGridLeft="4.09595" scaleGridRight="12.2878" scaleGridTop="9.99243" scaleGridBottom="3.33081">
     <Path winding="nonZero" data="M14.165 0 16.3838 2.21924 5.24023 13.3232 0 8.52441 2.18164 6.11719 5.37305 9.06348 14.165 0Z">
@@ -5,6 +25,5 @@
         <SolidColor color="#676767"/>
       </fill>
     </Path>
-    <Path visible="false" winding="nonZero" data="M0 0 17 0 17 13 0 13 0 0Z"/>
   </Group>
 </Graphic>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/10f8840f/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_downUnselected.fxg
----------------------------------------------------------------------
diff --git a/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_downUnselected.fxg b/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_downUnselected.fxg
deleted file mode 100644
index 127a4b3..0000000
--- a/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_downUnselected.fxg
+++ /dev/null
@@ -1,15 +0,0 @@
-<Graphic version="2.0" xmlns="http://ns.adobe.com/fxg/2008">
-  <Group scaleGridLeft="8" scaleGridRight="24" scaleGridTop="24" scaleGridBottom="8">
-    <Path winding="nonZero" data="M32 31.001C32 31.5527 31.5527 32 31.001 32L0.999023 32C0.447266 32 0 31.5527 0 31.001L0 0.999023C0 0.447266 0.447266 0 0.999023 0L31.001 0C31.5527 0 32 0.447266 32 0.999023L32 31.001Z">
-      <fill>
-        <SolidColor color="#DEDEDD"/>
-      </fill>
-    </Path>
-    <Path x="8" y="8" winding="nonZero" data="M15 7 15 15 1 15 1 1 14 1 14 0 0 0 0 16 16 16 16 7 15 7Z">
-      <fill>
-        <SolidColor color="#676767"/>
-      </fill>
-    </Path>
-    <Path visible="false" winding="nonZero" data="M0 0 32 0 32 32 0 32 0 0Z"/>
-  </Group>
-</Graphic>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/10f8840f/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_up.fxg
----------------------------------------------------------------------
diff --git a/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_up.fxg b/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_up.fxg
index 03843e7..9d65260 100644
--- a/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_up.fxg
+++ b/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_up.fxg
@@ -1,16 +1,26 @@
-<Graphic version="2.0" xmlns="http://ns.adobe.com/fxg/2008">
-  <Group>
-    <Group alpha="0.5">
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+<Graphic version="2.0" xmlns="http://ns.adobe.com/fxg/2008" viewHeight="32" viewWidth="32">
+    <Group alpha="0.5" x="8" y="8">
       <Group>
-        <mask>
-          <Group>
-            <Path winding="nonZero" data="M16 16 0 16 0 0 16 0 16 16Z">
-              <fill>
-                <SolidColor color="#FFFFFF"/>
-              </fill>
-            </Path>
-          </Group>
-        </mask>
         <Path winding="nonZero" data="M16 16 0 16 0 0 16 0 16 16ZM1 15 15 15 15 1 1 1 1 15Z">
           <fill>
             <SolidColor color="#676767"/>
@@ -18,6 +28,4 @@
         </Path>
       </Group>
     </Group>
-    <Path visible="false" winding="nonZero" data="M0 0 16 0 16 16 0 16 0 0Z"/>
-  </Group>
 </Graphic>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/10f8840f/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_upSelected.fxg
----------------------------------------------------------------------
diff --git a/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_upSelected.fxg b/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_upSelected.fxg
new file mode 100644
index 0000000..f51d7df
--- /dev/null
+++ b/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_upSelected.fxg
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+<Graphic version="2.0" xmlns="http://ns.adobe.com/fxg/2008" viewHeight="32" viewWidth="32">
+  <Group x="8" y="8" scaleGridLeft="4" scaleGridRight="12" scaleGridTop="12" scaleGridBottom="4">
+    <Path winding="nonZero" data="M15 7 15 15 1 15 1 1 14 1 14 0 0 0 0 16 16 16 16 7 15 7Z">
+      <fill>
+        <SolidColor color="#676767"/>
+      </fill>
+    </Path>
+  </Group>
+</Graphic>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/10f8840f/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_upSymbolSelected.fxg
----------------------------------------------------------------------
diff --git a/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_upSymbolSelected.fxg b/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_upSymbolSelected.fxg
index 8c8efd7..a728d3d 100644
--- a/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_upSymbolSelected.fxg
+++ b/frameworks/projects/mobiletheme/src/spark/skins/android4/assets/CheckBox_upSymbolSelected.fxg
@@ -1,10 +1,33 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
 <Graphic version="2.0" xmlns="http://ns.adobe.com/fxg/2008">
-  <Group scaleGridLeft="4.0957" scaleGridRight="12.2881" scaleGridTop="9.99219" scaleGridBottom="3.33105">
-    <Path winding="nonZero" data="M14.165 0 16.3838 2.21924 5.24023 13.3232 0 8.52441 2.18164 6.11719 5.37305 9.06348 14.165 0Z">
-      <fill>
-        <SolidColor color="#33B5E5"/>
-      </fill>
+  <Group>
+      <Path x="0.624023" y="0.399414" winding="nonZero" data="M14.165 0 16.3838 2.21924 5.24023 13.3232 0 8.52441 2.18164 6.11719 5.37305 9.06348 14.165 0Z">
+        <fill>
+          <SolidColor color="#33B5E5"/>
+        </fill>
+      </Path>
+    <Path x="0.704102" y="0.712402" winding="nonZero" data="M14.165 0 16.3838 2.21924 5.24023 13.3232 0 8.52441 2.18164 6.11719 5.37305 9.06348 14.165 0Z">
+      <stroke>
+        <SolidColorStroke caps="none" joints="miter" miterLimit="10" color="#676767"/>
+      </stroke>
     </Path>
-    <Path visible="false" winding="nonZero" data="M0 0 17 0 17 13 0 13 0 0Z"/>
   </Group>
 </Graphic>
\ No newline at end of file