From: dongsug-song <35130733+dongsug-song@users.noreply.github.com> Date: Mon, 23 Dec 2019 07:06:42 +0000 (+0900) Subject: [NUI] Add AnimatedImageView for AGIF and Image-Array as HiddenAPI (#1227) (#1229) X-Git-Tag: submit/tizen_5.5/20191224.005145~1^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e1c1e80b133a1fea3d78457ea6eab5ec204bf9a8;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [NUI] Add AnimatedImageView for AGIF and Image-Array as HiddenAPI (#1227) (#1229) --- diff --git a/src/Tizen.NUI/src/public/BaseComponents/AnimatedImageView.cs b/src/Tizen.NUI/src/public/BaseComponents/AnimatedImageView.cs new file mode 100755 index 0000000..c9cc983 --- /dev/null +++ b/src/Tizen.NUI/src/public/BaseComponents/AnimatedImageView.cs @@ -0,0 +1,279 @@ +/* + * Copyright(c) 2019 Samsung Electronics Co., Ltd. + * + * Licensed 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. + * + */ + +using System.Collections.Generic; +using System.ComponentModel; + +#if (NUI_DEBUG_ON) +using tlog = Tizen.Log; +#endif + +namespace Tizen.NUI.BaseComponents +{ + /// + /// AnimatedImageView is a class for displaying Animated-GIF and Image-Array + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public class AnimatedImageView : ImageView + { + #region Constructor, Distructor, Dispose + /// + /// Construct AnimatedImageView + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public AnimatedImageView() : base() + { + mDirtyFlag = true; + } + + /// + /// You can override it to clean-up your own resources + /// + /// DisposeTypes + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + protected override void Dispose(DisposeTypes type) + { + if (disposed) + { + return; + } + + //Release your own unmanaged resources here. + //You should not access any managed member here except static instance. + //because the execution order of Finalizes is non-deterministic. + base.Dispose(type); + } + #endregion Constructor, Distructor, Dispose + + #region Property + /// + /// Image URL for Animated-GIF + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public new string ResourceUrl + { + get + { + return mUrl; + } + set + { + mDirtyFlag = true; + mUrl = value; + } + } + + /// + /// Image URL list for Image-Array + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public List URLs + { + get + { + return mResourceURLs; + } + set + { + mDirtyFlag = true; + mResourceURLs = value; + } + } + + /// + /// Defines the batch size for pre-loading images in the Image-Array animation. + /// number of images to pre-load before starting to play. Default value: 1. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public int BatchSize + { + get + { + return mBatchSize; + } + set + { + mDirtyFlag = true; + mBatchSize = value; + } + } + + /// + /// Defines the cache size for loading images in the Image-Array animation. + /// number of images to keep cached ahead during playback. Default value: 1. + /// + /// + /// cacheSize should be >= batchSize. If it isn't, then the cache will automatically be changed to batchSize. + /// because of the defaults, it is expected that the application developer tune the batch and cache sizes to their particular use case. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public int CacheSize + { + get + { + return mCacheSize; + } + set + { + mDirtyFlag = true; + mCacheSize = value; + } + } + + /// + /// The number of milliseconds between each frame in the Image-Array animation. + /// The number of milliseconds between each frame. + /// + /// + /// This is only used when URLs(multiple string) are provided. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public int FrameDelay + { + get + { + return mFrameDelay; + } + set + { + mDirtyFlag = true; + mFrameDelay = value; + } + } + + /// + /// The number of looping. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public int LoopCount + { + get + { + return mLoopCount; + } + set + { + mDirtyFlag = true; + mLoopCount = value; + } + } + #endregion Property + + #region Method + /// + /// To make the properies be set. This should be called after the properties are set. + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public void SetValues() + { + if (mDirtyFlag == false) + { + return; + } + mDirtyFlag = false; + + PropertyMap tMap = new PropertyMap(); + tMap.Insert(Visual.Property.Type, new PropertyValue((int)Visual.Type.AnimatedImage)); + if (mResourceURLs?.Count != 0) + { + PropertyArray tArr = new PropertyArray(); + foreach (var iter in mResourceURLs) + { + tArr.Add(new PropertyValue(iter)); + } + tMap.Insert(ImageVisualProperty.URL, new PropertyValue(tArr)); + tMap.Insert(ImageVisualProperty.BatchSize, new PropertyValue(mBatchSize)); + tMap.Insert(ImageVisualProperty.CacheSize, new PropertyValue(mCacheSize)); + tMap.Insert(ImageVisualProperty.FrameDelay, new PropertyValue(mFrameDelay)); + tMap.Insert(ImageVisualProperty.LoopCount, new PropertyValue(mLoopCount)); + + } + else + { + tMap.Insert(ImageVisualProperty.URL, new PropertyValue(mUrl)); + } + + mMap = tMap; + SetProperty(ImageView.Property.IMAGE, new PropertyValue(mMap)); + } + + /// + /// Play animation + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public new void Play() + { + SetValues(); + base.Play(); + } + + /// + /// Pause animation. Currently pause and stop are same + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public new void Pause() + { + SetValues(); + base.Pause(); + } + + /// + /// Stop animation. Currently pause and stop are same + /// + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public new void Stop() + { + SetValues(); + base.Stop(); + } + #endregion Method + + + #region Event, Enum, Struct, ETC + #endregion Event, Enum, Struct, ETC + + + #region Internal + #endregion Internal + + + #region Private + string mUrl = ""; + List mResourceURLs = new List(); + int mBatchSize = 1; + int mCacheSize = 1; + int mFrameDelay = 0; + int mLoopCount = -1; + bool mDirtyFlag = false; + PropertyMap mMap; + const string tag = "NUITEST"; + #endregion Private + } +} \ No newline at end of file diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/AnimatedImageViewTest.cs b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/AnimatedImageViewTest.cs new file mode 100755 index 0000000..5f0deac --- /dev/null +++ b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/AnimatedImageViewTest.cs @@ -0,0 +1,299 @@ +using System.Collections.Generic; +using Tizen.NUI.BaseComponents; +using Tizen.NUI.Components; + +namespace Tizen.NUI.Samples +{ + using tlog = Tizen.Log; + public class AnimatedImageViewTest : IExample + { + View root; + Box box, box2; + string resPath; + const string tag = "NUITEST"; + + internal static int GetRatio(int percent, float value) + { + return (int)(value * (percent / 100.0f)); + } + + public class Box : View + { + public TextLabel title; + public AnimatedImageView image; + public TextLabel status; + public Button but1; + public Button but2; + public Button but3; + + public Box(Size2D boxSize, string boxTitle, string imageUrl) + { + this.Size2D = boxSize; + this.Margin = new Extents(0, 0, 20, 20); + this.BackgroundColor = Color.Magenta; + + title = new TextLabel(boxTitle); + title.Size2D = new Size2D(boxSize.Width, GetRatio(20, boxSize.Height)); + title.Position2D = new Position2D(0, 0); + title.MultiLine = true; + title.BackgroundColor = Color.Blue; + title.TextColor = Color.Yellow; + this.Add(title); + + image = new AnimatedImageView(); + image.Size2D = new Size2D(boxSize.Width, GetRatio(50, boxSize.Height)); + image.Position2D = new Position2D(0, title.Size2D.Height); + image.ResourceUrl = imageUrl; + image.Play(); + this.Add(image); + + status = new TextLabel("Initialized"); + status.Size2D = new Size2D(boxSize.Width, GetRatio(20, boxSize.Height)); + status.Position2D = new Position2D(0, image.Position2D.Y + image.Size2D.Height); + status.MultiLine = true; + status.BackgroundColor = Color.White; + status.PointSize = 20; + this.Add(status); + + ButtonStyle aStyle = new ButtonStyle + { + IsSelectable = true, + BackgroundImage = new Selector + { + Normal = CommonResource.GetFHResourcePath() + "3. Button/[Button] App Primary Color/rectangle_toggle_btn_normal_24c447.png", + Selected = CommonResource.GetFHResourcePath() + "3. Button/[Button] App Primary Color/rectangle_point_btn_normal_24c447.png", + }, + BackgroundImageBorder = new Selector { All = new Rectangle(5, 5, 5, 5) }, + + Shadow = new ImageViewStyle + { + ResourceUrl = new Selector { All = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_shadow.png" }, + Border = new Selector { All = new Rectangle(5, 5, 5, 5) } + }, + + Overlay = new ImageViewStyle + { + ResourceUrl = new Selector { Pressed = CommonResource.GetFHResourcePath() + "3. Button/rectangle_btn_press_overlay.png", Other = "" }, + Border = new Selector { All = new Rectangle(5, 5, 5, 5) }, + }, + + Text = new TextLabelStyle + { + PointSize = new Selector { All = 20 }, + HorizontalAlignment = HorizontalAlignment.Center, + VerticalAlignment = VerticalAlignment.Center, + WidthResizePolicy = ResizePolicyType.FillToParent, + HeightResizePolicy = ResizePolicyType.FillToParent, + + TextColor = new Selector + { + Normal = new Color(0.141f, 0.769f, 0.278f, 1), + Selected = new Color(1, 1, 1, 1), + }, + } + }; + but1 = new Button(aStyle); + but1.Size2D = new Size2D(GetRatio(32, boxSize.Width), GetRatio(10, boxSize.Height)); + but1.PositionUsesPivotPoint = true; + but1.ParentOrigin = Tizen.NUI.ParentOrigin.BottomLeft; + but1.PivotPoint = Tizen.NUI.ParentOrigin.BottomLeft; + but1.Style.Text.Text = new Selector + { + Normal = "Button1 Normal", + Selected = "Button1 Selected", + Disabled = "Button2 Disabled", + }; + this.Add(but1); + + but2 = new Button(aStyle); + but2.Size2D = new Size2D(GetRatio(32, boxSize.Width), GetRatio(10, boxSize.Height)); + but2.PositionUsesPivotPoint = true; + but2.ParentOrigin = Tizen.NUI.ParentOrigin.BottomCenter; + but2.PivotPoint = Tizen.NUI.ParentOrigin.BottomCenter; + but2.Style.Text.Text = new Selector + { + Normal = "Button2 Normal", + Selected = "Button2 Selected", + Disabled = "Button2 Disabled", + }; + this.Add(but2); + + but3 = new Button(aStyle); + but3.Size2D = new Size2D(GetRatio(32, boxSize.Width), GetRatio(10, boxSize.Height)); + but3.PositionUsesPivotPoint = true; + but3.ParentOrigin = Tizen.NUI.ParentOrigin.BottomRight; + but3.PivotPoint = Tizen.NUI.ParentOrigin.BottomRight; + but3.Style.Text.Text = new Selector + { + Normal = "Button3 Normal", + Selected = "Button3 Selected", + Disabled = "Button2 Disabled", + }; + this.Add(but3); + } + + } + public void Activate() + { + resPath = Tizen.Applications.Application.Current.DirectoryInfo.Resource; + root = new View(); + root.BackgroundColor = Color.Green; + root.Size2D = new Size2D(Window.Instance.Size.Width, Window.Instance.Size.Height); + var layer = new LinearLayout(); + layer.LinearAlignment = LinearLayout.Alignment.CenterHorizontal; + layer.LinearOrientation = LinearLayout.Orientation.Vertical; + root.Layout = layer; + Window.Instance.GetDefaultLayer().Add(root); + + box = new Box(new Size2D(root.Size2D.Width, GetRatio(40, root.Size2D.Height)), "AGIF Test", resPath + "images/AGIF/dali-logo-anim.gif"); + root.Add(box); + + box.image.SetValues(); + box.but1.ClickEvent += But1_ClickEvent; + box.but1.Style.Text.Text = new Selector + { + Normal = "Pause !", + Selected = "Play !" + }; + box.but2.ClickEvent += But2_ClickEvent; + box.but2.Style.Text.Text = new Selector + { + Normal = "Stop !", + Selected = "Play !" + }; + box.status.Text = "playing now"; + box.but3.IsEnabled = false; + + box2 = new Box(new Size2D(root.Size2D.Width, GetRatio(40, root.Size2D.Height)), "Image array Test", ""); + root.Add(box2); + + var list = new List(); + for (int i = 1; i <= 8; i++) + { + list.Add(resPath + "images/AGIF/dog-anim-00" + i + ".png"); + } + box2.image.URLs = list; + box2.image.Play(); + + box2.but1.ClickEvent += But1_ClickEvent1; + box2.but1.Style.Text.Text = new Selector + { + Normal = "Pause !", + Selected = "Play by reseting frame dalay and loop count!", + }; + box2.but1.Style.Text.PointSize = new Selector + { + Normal = 20, + Selected = 15, + }; + box2.but1.Style.Text.MultiLine = true; + + + box2.but2.ClickEvent += But2_ClickEvent1; + box2.but2.IsSelectable = false; + box2.but2.Style.Text.Text = new Selector + { + Normal = "Increase frame delay", + Pressed = "Up 100ms", + }; + + box2.but3.ClickEvent += But3_ClickEvent; + box2.but3.IsSelectable = false; + box2.but3.Style.Text.Text = new Selector + { + Normal = "Increase loop count", + Pressed = "Up 1 count", + }; + box2.status.Text = $"playing now, frame delay: {box2.image.FrameDelay}ms, loop count: {box2.image.LoopCount}"; + + } + + private void But3_ClickEvent(object sender, Button.ClickEventArgs e) + { + tlog.Fatal(tag, $"But3_ClickEvent()!"); + var src = sender as Button; + if (src != null) + { + box2.image.LoopCount += 1; + box2.image.Play(); + box2.status.Text = $"playing now, frame delay: {box2.image.FrameDelay}ms, loop count: {box2.image.LoopCount}"; + } + } + + private void But2_ClickEvent1(object sender, Button.ClickEventArgs e) + { + tlog.Fatal(tag, $"But2_ClickEvent1()!"); + var src = sender as Button; + if (src != null) + { + box2.image.FrameDelay += 100; + box2.image.Play(); + box2.status.Text = $"playing now, frame delay: {box2.image.FrameDelay}ms, loop count: {box2.image.LoopCount}"; + } + } + private void But1_ClickEvent1(object sender, Button.ClickEventArgs e) + { + tlog.Fatal(tag, $"But1_ClickEvent1()!"); + var src = sender as Button; + if (src != null) + { + tlog.Fatal(tag, $"is selected: {src.IsSelected}"); + if (src.IsSelected) + { + box2.image.Pause(); + box2.status.Text = $"paused, frame delay: {box2.image.FrameDelay}ms, loop count: {box2.image.LoopCount}"; + } + else + { + box2.image.FrameDelay = 0; + box2.image.LoopCount = -1; + box2.image.Play(); + box2.status.Text = $"playing now, frame delay: {box2.image.FrameDelay}ms, loop count: {box2.image.LoopCount}"; + } + } + } + + private void But2_ClickEvent(object sender, Button.ClickEventArgs e) + { + tlog.Fatal(tag, $"But2_ClickEvent()!"); + var src = sender as Button; + if (src != null) + { + if (src.IsSelected) + { + box.image.Stop(); + box.status.Text = "stopped"; + } + else + { + box.image.Play(); + box.status.Text = "playing now"; + } + } + } + + private void But1_ClickEvent(object sender, Button.ClickEventArgs e) + { + tlog.Fatal(tag, $"But1_ClickEvent()!"); + var src = sender as Button; + if (src != null) + { + tlog.Fatal(tag, $"is selected: {src.IsSelected}"); + if (src.IsSelected) + { + box.image.Pause(); + box.status.Text = "paused"; + } + else + { + box.image.Play(); + box.status.Text = "playing now"; + } + } + } + + public void Deactivate() + { + } + } +} diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-001.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-001.png new file mode 100755 index 0000000..e7831d8 Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-001.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-002.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-002.png new file mode 100755 index 0000000..de237d8 Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-002.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-003.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-003.png new file mode 100755 index 0000000..db6c8a2 Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-003.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-004.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-004.png new file mode 100755 index 0000000..0fa0cd5 Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-004.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-005.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-005.png new file mode 100755 index 0000000..cf6f2f3 Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-005.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-006.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-006.png new file mode 100755 index 0000000..7a7a4ab Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-006.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-007.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-007.png new file mode 100755 index 0000000..0525ee0 Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-007.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-008.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-008.png new file mode 100755 index 0000000..739d968 Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-008.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-009.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-009.png new file mode 100755 index 0000000..404610e Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-009.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-010.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-010.png new file mode 100755 index 0000000..a6d4eea Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-010.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-011.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-011.png new file mode 100755 index 0000000..96212b5 Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-011.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-012.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-012.png new file mode 100755 index 0000000..df27db5 Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-012.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-013.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-013.png new file mode 100755 index 0000000..8a355dd Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-013.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-014.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-014.png new file mode 100755 index 0000000..bfda98c Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-014.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-015.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-015.png new file mode 100755 index 0000000..a1fd13d Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim-015.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim.gif b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim.gif new file mode 100755 index 0000000..9a085ba Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dali-logo-anim.gif differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-001.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-001.png new file mode 100755 index 0000000..b8aa79d Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-001.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-002.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-002.png new file mode 100755 index 0000000..e25eca4 Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-002.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-003.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-003.png new file mode 100755 index 0000000..a949af8 Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-003.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-004.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-004.png new file mode 100755 index 0000000..e232874 Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-004.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-005.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-005.png new file mode 100755 index 0000000..d03b442 Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-005.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-006.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-006.png new file mode 100755 index 0000000..7d5958d Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-006.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-007.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-007.png new file mode 100755 index 0000000..74ac88e Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-007.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-008.png b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-008.png new file mode 100755 index 0000000..c291229 Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim-008.png differ diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim.gif b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim.gif new file mode 100755 index 0000000..ddc3312 Binary files /dev/null and b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/res/images/AGIF/dog-anim.gif differ