Spannable的Android填充?

Spannable的Android填充?,第1张

概述我使用此代码为TextView中的文本设置背景: s.setSpan(new BackgroundColorSpan(getResources().getColor(R.color.selection_blue)), prevIndex, index, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 但是我也需要为这个文本设置填充.可能吗? 您可以使用Replacemen 我使用此代码为TextVIEw中的文本设置背景:

s.setSpan(new BackgroundcolorSpan(getResources().getcolor(R.color.selection_blue)),prevIndex,index,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

但是我也需要为这个文本设置填充.可能吗?

解决方法 您可以使用ReplacementSpan.
在您的活动中:

TextVIEw TagsTextVIEw = (TextVIEw) mVIEw.findVIEwByID(R.ID.TagsTextVIEw);SpannableStringBuilder stringBuilder = new SpannableStringBuilder();SpannableString tag = new SpannableString("TEST");stringBuilder.append(tag);stringBuilder.setSpan(new Tagspan(getResources().getcolor(R.color.blue),getResources().getcolor(R.color.white)),stringBuilder.length() - tag.length(),stringBuilder.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);TagsTextVIEw.setText(stringBuilder,TextVIEw.BufferType.SPANNABLE);

Tagspan.java

public class Tagspan extends ReplacementSpan {    private static final float padding = 50.0f;    private RectF mRect;    private int mBackgroundcolor;    private int mForegroundcolor;    public Tagspan(int backgroundcolor,int foregroundcolor) {        this.mRect = new RectF();        this.mBackgroundcolor = backgroundcolor;        this.mForegroundcolor = foregroundcolor;    }    @OverrIDe    public voID draw(Canvas canvas,CharSequence text,int start,int end,float x,int top,int y,int bottom,Paint paint) {        // Background        mRect.set(x,top,x + paint.measureText(text,start,end) + padding,bottom);        paint.setcolor(mBackgroundcolor);        canvas.drawRect(mRect,paint);        // Text        paint.setcolor(mForegroundcolor);        int xPos = Math.round(x + (padding / 2));        int yPos = (int) ((canvas.getHeight() / 2) - ((paint.descent() + paint.ascent()) / 2)) ;        canvas.drawText(text,end,xPos,yPos,paint);    }    @OverrIDe    public int getSize(Paint paint,FontMetricsInt fm) {        return Math.round(paint.measureText(text,end) + padding);    }}
总结

以上是内存溢出为你收集整理的Spannable的Android填充?全部内容,希望文章能够帮你解决Spannable的Android填充?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1126796.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存