From: Seungkeun Lee Date: Wed, 4 Jan 2017 05:01:48 +0000 (+0900) Subject: Support Density Independent Pixel on FontSize X-Git-Tag: submit/tizen/20170424.094440~118 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=60c60caaaa2ff3205587b4082999c97de3bd81d9;p=platform%2Fupstream%2Fxamarin-forms.git Support Density Independent Pixel on FontSize - FontSize on Span was use DP unit Change-Id: I1a0a50dbeae3ede0c61a67f60f7238631684537d --- diff --git a/Xamarin.Forms.Platform.Tizen/Forms.cs b/Xamarin.Forms.Platform.Tizen/Forms.cs index 34828a4..453bab8 100644 --- a/Xamarin.Forms.Platform.Tizen/Forms.cs +++ b/Xamarin.Forms.Platform.Tizen/Forms.cs @@ -11,6 +11,12 @@ namespace Xamarin.Forms.Platform.Tizen { public static class Forms { + static Lazy s_dpi = new Lazy(() => + { + int dpi = 0; + TSystemInfo.TryGetValue("http://tizen.org/feature/screen.dpi", out dpi); + return dpi; + }); class TizenDeviceInfo : DeviceInfo { readonly Size pixelScreenSize; @@ -178,6 +184,11 @@ namespace Xamarin.Forms.Platform.Tizen // TODO: implement me return Color.Black; } + + internal static int ConvertToPixel(double dp) + { + return (int)Math.Round(dp * s_dpi.Value / 160.0); + } } class TizenExpressionSearch : ExpressionVisitor, IExpressionSearch @@ -206,4 +217,4 @@ namespace Xamarin.Forms.Platform.Tizen return base.VisitMember(node); } } -} \ No newline at end of file +} diff --git a/Xamarin.Forms.Platform.Tizen/Native/Span.cs b/Xamarin.Forms.Platform.Tizen/Native/Span.cs index 7ac4134..0e3f000 100644 --- a/Xamarin.Forms.Platform.Tizen/Native/Span.cs +++ b/Xamarin.Forms.Platform.Tizen/Native/Span.cs @@ -175,7 +175,7 @@ namespace Xamarin.Forms.Platform.Tizen.Native if (FontSize != -1) { - _formattingString.AppendFormat("font_size={0} ", FontSize); + _formattingString.AppendFormat("font_size={0} ", Forms.ConvertToPixel(FontSize)); } if ((FontAttributes & FontAttributes.Bold) != 0) diff --git a/Xamarin.Forms.Platform.Tizen/TizenPlatformServices.cs b/Xamarin.Forms.Platform.Tizen/TizenPlatformServices.cs index 7d44231..db7ee1d 100644 --- a/Xamarin.Forms.Platform.Tizen/TizenPlatformServices.cs +++ b/Xamarin.Forms.Platform.Tizen/TizenPlatformServices.cs @@ -82,14 +82,14 @@ namespace Xamarin.Forms.Platform.Tizen switch (size) { case NamedSize.Micro: - return 16; + return 10; case NamedSize.Small: - return 20; + return 12; case NamedSize.Default: case NamedSize.Medium: - return 24; + return 14; case NamedSize.Large: - return 30; + return 18; default: throw new ArgumentOutOfRangeException(); }