Android SpannableString在部分文字后面设置了背景

罗斯福

我想创建类似此图片所示的内容: 在此处输入图片说明

我设法用SpannableStringBuilder创建了Evertyhing,除了橙色的圆角矩形。我可以使用BackgroundColorSpan将背景设置为该颜色,但是我找不到使它变圆的方法。有什么想法可以实现吗?

提前致谢!

编辑:我正在使用Xamarin.Android,但这是我的代码:

stringBuilder.SetSpan(new BackgroundColorSpan(Application.Context.Resources.GetColor(Resource.Color.orangeColor)), stringBuilder.Length() - length, stringBuilder.Length(), SpanTypes.ExclusiveExclusive);
罗斯福

根据pskink的建议,我设法解决了我的问题。这是我的课:

public class RoundedBackgroundSpan : ReplacementSpan
{
    public override void Draw(Canvas canvas, ICharSequence text, int start, int end, float x, int top, int y, int bottom, Paint paint)
    {
        var rect = new RectF(x, top, x + MeasureText(paint, text, start, end), bottom);
        paint.Color = Application.Context.Resources.GetColor(Resource.Color.nextTimeBackgroundColor);
        canvas.DrawRoundRect(rect, Application.Context.Resources.GetDimensionPixelSize(Resource.Dimension.localRouteDetailsRoundRectValue), Application.Context.Resources.GetDimensionPixelSize(Resource.Dimension.localRouteDetailsRoundRectValue), paint);
        paint.Color = Application.Context.Resources.GetColor(Resource.Color.nextTimeTextColor);
        canvas.DrawText(text, start, end, x, y, paint);
    }

    public override int GetSize(Paint paint, ICharSequence text, int start, int end, Paint.FontMetricsInt fm)
    {
        return Math.Round(MeasureText(paint, text, start, end));
    }

    private float MeasureText(Paint paint, ICharSequence text, int start, int end)
    {
        return paint.MeasureText(text, start, end);
    }
}

用法示例:

var stringBuilder = new SpannableStringBuilder();
var stringToAppend = "hello world";
stringBuilder.Append(stringToAppend);
stringBuilder.SetSpan(new RoundedBackgroundSpan(), stringBuilder.Length() - stringToAppend.Length, stringBuilder.Length(), SpanTypes.ExclusiveExclusive);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android SpannableString在部分文字后面设置背景

来自分类Dev

更改部分文字大小与Java for Android

来自分类Dev

文字后面的图片

来自分类Dev

Android:将onClickListener设置为TextView中的一部分文本-问题

来自分类Dev

如何在标题文字后面显示背景图片?

来自分类Dev

我的文字后面的背景转到页面的最后而不是停止

来自分类Dev

CodeGo.net>如何获得按钮文字后面的黑色纯色背景

来自分类Dev

Android Regex-如何在数字后面加上连字符?

来自分类Dev

Android Regex-如何在数字后面加上连字符?

来自分类Dev

设置背景色:Android

来自分类Dev

在Android Wear上设置背景

来自分类Dev

Android ListView设置项目背景

来自分类Dev

文字后面的Font Awesome图标

来自分类Dev

文字后面的白框

来自分类Dev

文字后面的Font Awesome图标

来自分类Dev

Android折叠工具栏:如何调整文本大小,以使其显示全文而不是部分文字

来自分类Dev

在Android中如何设置文字?

来自分类Dev

Android:设置操作栏背景色

来自分类Dev

Android:使用图像路径设置布局背景

来自分类Dev

在Android中的ImageButton上设置位图背景

来自分类Dev

如何设置背景图像Xamarin Android

来自分类Dev

在Android中使用setBackgroungDrawable函数设置背景

来自分类Dev

Android Studio设置视图的背景色

来自分类Dev

Android:无法设置操作栏的背景颜色

来自分类Dev

Android-根据变量设置背景

来自分类Dev

如何正确设置android背景色?

来自分类Dev

在Android中设置cardview背景逻辑

来自分类Dev

在图像内设置背景 - android xml

来自分类Dev

Android背景颜色设置为灰色,而不是@android:color / white

Related 相关文章

热门标签

归档