From 0cfed0453c85907e4d626f848bd9d3623eb940ec Mon Sep 17 00:00:00 2001 From: Joogab Yun Date: Wed, 18 Nov 2020 16:06:18 +0900 Subject: [PATCH] [NUI] fixed bug about set desired size --- .../src/public/BaseComponents/ImageView.cs | 49 ++++++++++++---------- 1 file changed, 28 insertions(+), 21 deletions(-) mode change 100644 => 100755 src/Tizen.NUI/src/public/BaseComponents/ImageView.cs diff --git a/src/Tizen.NUI/src/public/BaseComponents/ImageView.cs b/src/Tizen.NUI/src/public/BaseComponents/ImageView.cs old mode 100644 new mode 100755 index 2b7969e..80b994e --- a/src/Tizen.NUI/src/public/BaseComponents/ImageView.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/ImageView.cs @@ -50,7 +50,7 @@ namespace Tizen.NUI.BaseComponents { var imageView = (ImageView)bindable; string ret = ""; - + PropertyMap imageMap = new PropertyMap(); Tizen.NUI.Object.GetProperty(imageView.swigCPtr, ImageView.Property.IMAGE).Get(imageMap); imageMap.Find(ImageVisualProperty.URL)?.Get(out ret); @@ -224,7 +224,7 @@ namespace Tizen.NUI.BaseComponents defaultValueCreator: (bindable) => { var imageView = (ImageView)bindable; - + bool ret = false; PropertyMap imageMap = new PropertyMap(); Tizen.NUI.Object.GetProperty(imageView.swigCPtr, ImageView.Property.IMAGE).Get(imageMap); @@ -451,7 +451,7 @@ namespace Tizen.NUI.BaseComponents { SetValue(ResourceUrlProperty, value); resourceUrlSelector.UpdateIfNeeds(this, value); - NotifyPropertyChanged(); + NotifyPropertyChanged(); } } @@ -881,8 +881,11 @@ namespace Tizen.NUI.BaseComponents } set { - UpdateImage(ImageVisualProperty.DesiredWidth, new PropertyValue(value)); - _desired_width = value; + if (_desired_width != value) + { + _desired_width = value; + UpdateImage(0, null); + } } } @@ -906,8 +909,11 @@ namespace Tizen.NUI.BaseComponents } set { - UpdateImage(ImageVisualProperty.DesiredHeight, new PropertyValue(value)); - _desired_height = value; + if (_desired_height != value) + { + _desired_height = value; + UpdateImage(0, null); + } } } @@ -931,7 +937,7 @@ namespace Tizen.NUI.BaseComponents UpdateImage(ImageVisualProperty.ReleasePolicy, new PropertyValue((int)value)); } } - + /// /// Gets or sets the wrap mode for the u coordinate.
/// It decides how the texture should be sampled when the u coordinate exceeds the range of 0.0 to 1.0.
@@ -1006,7 +1012,7 @@ namespace Tizen.NUI.BaseComponents Interop.ImageView.ImageView_SetImage__SWIG_2(swigCPtr, url, Uint16Pair.getCPtr(size)); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - + ResourceUrl = url; } @@ -1082,10 +1088,10 @@ namespace Tizen.NUI.BaseComponents PropertyMap imageMap = new PropertyMap(); Tizen.NUI.Object.GetProperty(swigCPtr, ImageView.Property.IMAGE).Get(imageMap); imageMap.Merge(fromMap); - + SetProperty(ImageView.Property.IMAGE, new PropertyValue(imageMap)); } - + private void UpdateImage(int key, PropertyValue value) { PropertyMap temp = new PropertyMap(); @@ -1131,21 +1137,22 @@ namespace Tizen.NUI.BaseComponents { Size2D imageSize = ImageLoading.GetOriginalImageSize(_resourceUrl); - int ret_width,ret_height; - if( imageSize.Width > imageSize.Height) + int adjustedDesiredWidth, adjustedDesiredHeight; + float aspectOfDesiredSize = (float)_desired_height / (float)_desired_width; + float aspectOfImageSize = (float)imageSize.Height / (float)imageSize.Width; + if( aspectOfImageSize > aspectOfDesiredSize) { - ret_width = _desired_width; - ret_height = imageSize.Height * _desired_height /(imageSize.Width); + adjustedDesiredWidth = _desired_width; + adjustedDesiredHeight = imageSize.Height * _desired_width / imageSize.Width; } else { - ret_width = imageSize.Width*_desired_width/(imageSize.Height); - ret_height = _desired_height; - + adjustedDesiredWidth = imageSize.Width * _desired_height/ imageSize.Height; + adjustedDesiredHeight = _desired_height; } - temp.Insert(ImageVisualProperty.DesiredWidth, new PropertyValue((int)ret_width)); - temp.Insert(ImageVisualProperty.DesiredHeight, new PropertyValue((int)ret_height)); - temp.Insert(ImageVisualProperty.FittingMode, new PropertyValue((int) FittingModeType.ShrinkToFit)); + temp.Insert(ImageVisualProperty.DesiredWidth, new PropertyValue(adjustedDesiredWidth)); + temp.Insert(ImageVisualProperty.DesiredHeight, new PropertyValue(adjustedDesiredHeight)); + temp.Insert(ImageVisualProperty.FittingMode, new PropertyValue((int) FittingModeType.ScaleToFill)); } } -- 2.7.4