static int n_GetSpanFlags_Ljava_lang_Object_(IntPtr jnienv, IntPtr native__this, IntPtr native_what) { Android.Text.SpannableString __this = global::Java.Lang.Object.GetObject <Android.Text.SpannableString> (jnienv, native__this, JniHandleOwnership.DoNotTransfer); Java.Lang.Object what = global::Java.Lang.Object.GetObject <Java.Lang.Object> (native_what, JniHandleOwnership.DoNotTransfer); int __ret = (int)__this.GetSpanFlags(what); return(__ret); }
void RenderChildSpannableStyle(Android.Text.SpannableString text, SpannableStringStyle parentStyle) { foreach (var style in parentStyle.Children) { style.RenderSpannableStringStyle(text); if (style.Children.Count > 0) { RenderChildSpannableStyle(text, style); } } }
//public override ICharSequence GetPageTitleFormatted(int position) //{ // return new Java.Lang.String(FragmentNames[position]); //} public override Java.Lang.ICharSequence GetPageTitleFormatted(int position) { var image = Application.Context.Resources.GetDrawable(FragmentIcon[position]); image.SetBounds(0, 0, image.IntrinsicWidth, image.IntrinsicHeight); var spannableString = new Android.Text.SpannableString("[icon]"); var imageSpan = new Android.Text.Style.ImageSpan(image, Android.Text.Style.SpanAlign.Bottom); spannableString.SetSpan(imageSpan, 0, 1, Android.Text.SpanTypes.ExclusiveExclusive); return(spannableString); }
public override ICharSequence GetPageTitleFormatted(int position) { // ICharSequence CS = new Java.Lang.String(""); Drawable image = Android.Support.V4.Content.ContextCompat.GetDrawable(MainActivity.MyActitvity, tabIcons[position]); image.SetBounds(0, 0, image.IntrinsicWidth, image.IntrinsicHeight); // Replace blank spaces with image icon Android.Text.SpannableString sb = new Android.Text.SpannableString(" " + tabTitles[position]); Android.Text.Style.ImageSpan imageSpan = new Android.Text.Style.ImageSpan(image, Android.Text.Style.SpanAlign.Bottom); sb.SetSpan(imageSpan, 0, 1, Android.Text.SpanTypes.ExclusiveExclusive); return(sb); }
void RenderSpannableText() { if (View.ParsedText == null) { return; } var spannableText = new Android.Text.SpannableString(View.Text); foreach (var spannableStyle in View.ParsedText) { spannableStyle.RenderSpannableStringStyle(spannableText); if (spannableStyle.Children.Count > 0) { RenderChildSpannableStyle(spannableText, spannableStyle); } } SetText(spannableText, BufferType.Spannable); View.LineHeightChanged.Raise(); }
internal static void RenderSpannableStringStyle(this SpannableStringStyle style, Android.Text.SpannableString text) { switch (style.Type) { case SpannableStringTypes.B: case SpannableStringTypes.Bold: text.SetSpan(new Android.Text.Style.StyleSpan(TypefaceStyle.Bold), style.Range.Start, style.Range.End, Android.Text.SpanTypes.ExclusiveExclusive); break; case SpannableStringTypes.I: case SpannableStringTypes.Italic: text.SetSpan(new Android.Text.Style.StyleSpan(TypefaceStyle.Italic), style.Range.Start, style.Range.End, Android.Text.SpanTypes.ExclusiveExclusive); break; case SpannableStringTypes.Font: foreach (var parameter in style.Parameters) { switch (parameter.Key) { case SpannableStringParameterTypes.Size: if (float.TryParse(parameter.Value, out float fontSize)) { text.SetSpan(new Android.Text.Style.AbsoluteSizeSpan(Device.Scale.ToDevice(fontSize), true), style.Range.Start, style.Range.End, Android.Text.SpanTypes.ExclusiveExclusive); } break; case SpannableStringParameterTypes.Color: text.SetSpan(new Android.Text.Style.ForegroundColorSpan(Zebble.Color.Parse(parameter.Value).Render()), style.Range.Start, style.Range.End, Android.Text.SpanTypes.ExclusiveExclusive); break; case SpannableStringParameterTypes.Face: // TODO implement font faces. break; default: break; } } break; default: break; } }