Esempio n. 1
0
        private void UpdateLayoutAlignment()
        {
            if (_layoutAlignment != null)
            {
                return;
            }

            switch (TextAlignment)
            {
            case TextAlignment.Center:
                _layoutAlignment   = Android.Text.Layout.Alignment.AlignCenter;
                _justificationMode = JustificationMode.None;
                break;

            case TextAlignment.Right:
                _layoutAlignment   = Android.Text.Layout.Alignment.AlignOpposite;
                _justificationMode = JustificationMode.None;
                break;

            case TextAlignment.Justify:
                _layoutAlignment   = Android.Text.Layout.Alignment.AlignNormal;
                _justificationMode = JustificationMode.InterWord;
                break;

            default:
            case TextAlignment.Left:
                _layoutAlignment   = Android.Text.Layout.Alignment.AlignNormal;
                _justificationMode = JustificationMode.None;
                break;
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Builds a new layout with the specified parameters.
 /// </summary>
 public LayoutBuilder(
     Java.Lang.ICharSequence textFormatted,
     TextPaint paint,
     TextUtils.TruncateAt ellipsize,
     Android.Text.Layout.Alignment layoutAlignment,
     TextWrapping textWrapping,
     int maxLines,
     Size availableSize,
     bool exactWidth,
     float lineHeight,
     LineStackingStrategy lineStackingStrategy,
     LayoutBuilder existingBuilder
     )
 {
     _textFormatted        = textFormatted;
     _paint                = paint;
     _ellipsize            = ellipsize;
     _layoutAlignment      = layoutAlignment;
     _textWrapping         = textWrapping;
     _maxLines             = maxLines;
     AvailableSize         = availableSize;
     _exactWidth           = exactWidth;
     _lineHeight           = lineHeight;
     _lineStackingStrategy = lineStackingStrategy;
     Layout                = existingBuilder?.Layout;
     _metrics              = existingBuilder?._metrics;
 }
Esempio n. 3
0
        private void UpdateLayoutAlignment()
        {
            if (_layoutAlignment != null)
            {
                return;
            }

            switch (TextAlignment)
            {
            case TextAlignment.Center:
                _layoutAlignment = Android.Text.Layout.Alignment.AlignCenter;
                break;

            case TextAlignment.Right:
                _layoutAlignment = Android.Text.Layout.Alignment.AlignOpposite;
                break;

            default:
            case TextAlignment.Left:
                _layoutAlignment = Android.Text.Layout.Alignment.AlignNormal;
                break;
            }
        }
Esempio n. 4
0
 // Invalidate _layoutAlignment
 partial void OnTextAlignmentChangedPartial() => _layoutAlignment = null;
Esempio n. 5
0
        public static Android.Text.StaticLayout StaticLayout(string charSequence, Android.Text.TextPaint paint, int width, Android.Text.Layout.Alignment align, float spacingmult, float spacingadd, bool includepad)
        {
            var source = charSequence ?? "";

            //P42.Utils.Debug.Message(source, "ENTER");
            if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.M)
            {
                var builder = Android.Text.StaticLayout.Builder.Obtain(source, 0, source.Length, paint, width).SetAlignment(align).SetLineSpacing(spacingadd, spacingmult).SetIncludePad(includepad);
                if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.P)
                {
                    builder.SetUseLineSpacingFromFallbacks(true);
                }
                var layout = builder.Build();
                //P42.Utils.Debug.Message(source, "EXIT");
                return(layout);
            }
            return(new Android.Text.StaticLayout(source, paint, width, align, spacingmult, spacingadd, includepad));
        }
Esempio n. 6
0
        public static Android.Text.StaticLayout StaticLayout(ICharSequence charSequence, Android.Text.TextPaint paint, int width, Android.Text.Layout.Alignment align, float spacingmult, float spacingadd, bool includepad)
        {
            var source = charSequence ?? new Java.Lang.String("");

            //P42.Utils.Debug.Message(source.ToString(), "ENTER");
            if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.M)
            {
                var builder = Android.Text.StaticLayout.Builder.Obtain(source, 0, source.Length(), paint, width).SetAlignment(align).SetLineSpacing(spacingadd, spacingmult).SetIncludePad(includepad);
                if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.P)
                {
                    builder.SetUseLineSpacingFromFallbacks(true);
                }
                var layout = builder.Build();
                //P42.Utils.Debug.Message(source.ToString(), "EXIT");
                return(layout);
            }
#pragma warning disable CS0618 // Type or member is obsolete
            return(new Android.Text.StaticLayout(source, paint, width, align, spacingmult, spacingadd, includepad));

#pragma warning restore CS0618 // Type or member is obsolete
        }
Esempio n. 7
0
        public static Android.Text.StaticLayout StaticLayout(ICharSequence source, Android.Text.TextPaint paint, int width, Android.Text.Layout.Alignment align, float spacingmult, float spacingadd, bool includepad)
        {
            //P42.Utils.Debug.Message(source.ToString(), "ENTER");
            var builder = Android.Text.StaticLayout.Builder.Obtain(source, 0, source.Length(), paint, width).SetAlignment(align).SetLineSpacing(spacingadd, spacingmult).SetIncludePad(includepad);
            var layout  = builder.Build();

            //P42.Utils.Debug.Message(source.ToString(), "EXIT");
            return(layout);
        }