TV Apps - Footer Button Animation
authorHeonjae Jang <heonjae.jang@samsung.com>
Thu, 23 Mar 2017 08:54:37 +0000 (17:54 +0900)
committerChulSeung Kim <charles0.kim@samsung.com>
Thu, 8 Jun 2017 09:34:49 +0000 (18:34 +0900)
Change-Id: Id2003bdee351127026fb5dadbcb61bb022da0b8a

TVApps/TVApps/Controls/TVButton.xaml
TVApps/TVApps/Controls/TVButton.xaml.cs
TVHome/TVHome.TizenTV/bin/Debug/TVHome.TizenTV.tpk

index a13b4f72ec0eb4aadd0620d1b5ce89e454b22024..621d6eea46395295a0270b2840fddedc1e53e55e 100644 (file)
@@ -17,7 +17,8 @@
     </ResourceDictionary>
   </StackLayout.Resources>
 
-  <Grid BackgroundColor="#770000FF"
+  <Grid x:Name="ButtonGrid"
+        BackgroundColor="#000000FF"
         VerticalOptions="FillAndExpand"
         HorizontalOptions="FillAndExpand">
 
index 5355383e39dcd795a56b509f43bc7bbd1aeaa9ae..71032427954d2b09f6221935a7ef76aa4b3649f8 100644 (file)
@@ -63,11 +63,78 @@ namespace TVApps.Controls
         public TVButton()
         {
             InitializeComponent();
-
+            HiddenButton.Clicked += ButtonClickListener;
+            HiddenButton.Focused += ButtonFocusedListener;
+            HiddenButton.Unfocused += ButtonUnfocusedListener;
             HiddenButton.OnButtonUp += ButtonUpListener;
             HiddenButton.OnButtonDown += ButtonDownListener;
         }
 
+        private void ButtonClickListener(object sender, EventArgs e)
+        {
+            // Stops playing animation
+            ButtonGrid.AbortAnimation("ColorChange");
+
+            // Starts animation that change Focused Color to Selected Color
+            ButtonGrid.Animate("ColorChange", v =>
+            {
+                var gridColorR = (int)(255 * (1 - v));
+                var gridColorG = (int)(255 - 126 * v);
+                var gridColorB = (int)(255 - 57 * v);
+                ButtonGrid.BackgroundColor = Color.FromRgb(gridColorR, gridColorG, gridColorB);
+            },
+            length: 100,
+            finished: (a, b) =>
+            {
+                // Starts animation that change Selected Color to Focused Color
+                ButtonGrid.Animate("ColorChange", v =>
+                {
+                    var gridColorR = (int)(255 * v);
+                    var gridColorG = (int)(129 + 126 * v);
+                    var gridColorB = (int)(198 + 57 * v);
+                    ButtonGrid.BackgroundColor = Color.FromRgb(gridColorR, gridColorG, gridColorB);
+                },
+                length: 50,
+                finished: (c, d) =>
+                {
+                    ButtonGrid.BackgroundColor = Color.FromRgb(255, 255, 255);
+                    Command?.Execute(CommandParameter);
+                });
+            });
+        }
+
+        private void ButtonFocusedListener(object sender, FocusEventArgs e)
+        {
+            // Stops playing animation
+            ButtonGrid.AbortAnimation("ColorChange");
+
+            // Starts animation that change Unfocused Color to Focused Color
+            ButtonGrid.Animate("ColorChange", v =>
+            {
+                var gridColor = (int)(255 * v);
+                var textColor = (int)(255 * (1 - v));
+                ButtonGrid.BackgroundColor = Color.FromRgb(gridColor, gridColor, gridColor);
+                TitleText.TextColor = Color.FromRgb(textColor, textColor, textColor);
+            },
+            length: 150);
+        }
+
+        private void ButtonUnfocusedListener(object sender, FocusEventArgs e)
+        {
+            // Stops playing animation
+            ButtonGrid.AbortAnimation("ColorChange");
+
+            // Starts animation that change Focused Color to Unfocused Color
+            ButtonGrid.Animate("ColorChange", v =>
+            {
+                var gridColor = (int)(255 * (1 - v));
+                var textColor = (int)(255 * v);
+                ButtonGrid.BackgroundColor = Color.FromRgb(gridColor, gridColor, gridColor);
+                TitleText.TextColor = Color.FromRgb(textColor, textColor, textColor);
+            },
+            length: 150);
+        }
+
         public void ButtonUpListener(Object sender, EventArgs e)
         {
             //BackgroundImage.Source = ButtonImageReleased;
index eae99de25db77ba0f3475058842d36bff288e3e4..859143df29fb84d0ccb8384c55ae2424f2758a3a 100644 (file)
Binary files a/TVHome/TVHome.TizenTV/bin/Debug/TVHome.TizenTV.tpk and b/TVHome/TVHome.TizenTV/bin/Debug/TVHome.TizenTV.tpk differ