Search in sources :

Example 91 with RelativeSizeSpan

use of android.text.style.RelativeSizeSpan in project SmartMesh_Android by SmartMeshFoundation.

the class IncomeDetailAdapter method getView.

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
    ViewHolder holder;
    if (view == null) {
        holder = new ViewHolder();
        view = View.inflate(context, R.layout.item_income_details, null);
        holder.incomeTime = view.findViewById(R.id.incomeTime);
        holder.incomeLine = view.findViewById(R.id.incomeLine);
        holder.incomeBottomLine = view.findViewById(R.id.incomeBottomLine);
        holder.incomeImage = view.findViewById(R.id.incomeImage);
        holder.incomeContent = view.findViewById(R.id.incomeContent);
        view.setTag(holder);
    } else {
        holder = (ViewHolder) view.getTag();
    }
    IncomeDetailVo.DataBean dataBean = dataBeans.get(i);
    holder.incomeTime.setText(DateUtil.getMMdd(dataBean.getDate() * 1000));
    String content = context.getString(R.string.income_detail_content, dataBean.getAction(), dataBean.getSource(), dataBean.getRevenue(), dataBean.getType().toUpperCase());
    SpannableStringBuilder style = new SpannableStringBuilder(content);
    int start = dataBean.getAction().length() + dataBean.getAction().length() + 2;
    int end = start + dataBean.getRevenue().length() + 1;
    // 设置指定位置文字的颜色
    style.setSpan(new ForegroundColorSpan(context.getResources().getColor(R.color.text_color_3F7AE0)), start, end, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
    // 粗体
    style.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), start, end, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
    // 1.1f表示默认字体大小的1.1倍
    style.setSpan(new RelativeSizeSpan(1.1f), start, end, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
    // 设置指定位置文字的颜色
    style.setSpan(new ForegroundColorSpan(context.getResources().getColor(R.color.text_color_323232)), 0, dataBean.getAction().length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
    // 粗体
    style.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, dataBean.getAction().length(), Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
    holder.incomeContent.setText(style);
    if (i == 0) {
        holder.incomeLine.setVisibility(View.INVISIBLE);
        holder.incomeImage.setImageResource(R.mipmap.icon_income_checked);
        holder.incomeTime.setTextColor(context.getResources().getColor(R.color.text_color_3F7AE0));
        holder.incomeTime.setVisibility(View.VISIBLE);
        holder.incomeImage.setVisibility(View.VISIBLE);
    } else {
        holder.incomeLine.setVisibility(View.VISIBLE);
        holder.incomeImage.setImageResource(R.mipmap.icon_income_unchecked);
        holder.incomeTime.setTextColor(context.getResources().getColor(R.color.text_color_999999));
        if (dataBeans.get(i).getDate() == dataBeans.get(i - 1).getDate()) {
            holder.incomeTime.setVisibility(View.INVISIBLE);
            holder.incomeImage.setVisibility(View.GONE);
        } else {
            holder.incomeTime.setVisibility(View.VISIBLE);
            holder.incomeImage.setVisibility(View.VISIBLE);
        }
    }
    if (i == dataBeans.size() - 1) {
        holder.incomeBottomLine.setVisibility(View.INVISIBLE);
    } else {
        holder.incomeBottomLine.setVisibility(View.VISIBLE);
    }
    return view;
}
Also used : ForegroundColorSpan(android.text.style.ForegroundColorSpan) StyleSpan(android.text.style.StyleSpan) RelativeSizeSpan(android.text.style.RelativeSizeSpan) SpannableStringBuilder(android.text.SpannableStringBuilder) IncomeDetailVo(com.lingtuan.meshbox.entity.IncomeDetailVo)

Example 92 with RelativeSizeSpan

use of android.text.style.RelativeSizeSpan in project ForPDA by RadiationX.

the class HtmlToSpannedConverter method withinParagraph.

private static void withinParagraph(StringBuilder out, Spanned text, int start, int end) {
    int next;
    for (int i = start; i < end; i = next) {
        next = text.nextSpanTransition(i, end, CharacterStyle.class);
        CharacterStyle[] style = text.getSpans(i, next, CharacterStyle.class);
        for (int j = 0; j < style.length; j++) {
            if (style[j] instanceof StyleSpan) {
                int s = ((StyleSpan) style[j]).getStyle();
                if ((s & Typeface.BOLD) != 0) {
                    out.append("<b>");
                }
                if ((s & Typeface.ITALIC) != 0) {
                    out.append("<i>");
                }
            }
            if (style[j] instanceof TypefaceSpan) {
                String s = ((TypefaceSpan) style[j]).getFamily();
                if ("monospace".equals(s)) {
                    out.append("<tt>");
                }
            }
            if (style[j] instanceof SuperscriptSpan) {
                out.append("<sup>");
            }
            if (style[j] instanceof SubscriptSpan) {
                out.append("<sub>");
            }
            if (style[j] instanceof UnderlineSpan) {
                out.append("<u>");
            }
            if (style[j] instanceof StrikethroughSpan) {
                out.append("<span style=\"text-decoration:line-through;\">");
            }
            if (style[j] instanceof URLSpan) {
                out.append("<a href=\"");
                out.append(((URLSpan) style[j]).getURL());
                out.append("\">");
            }
            if (style[j] instanceof ImageSpan) {
                out.append("<img src=\"");
                out.append(((ImageSpan) style[j]).getSource());
                out.append("\">");
                // Don't output the dummy character underlying the image.
                i = next;
            }
            if (style[j] instanceof AbsoluteSizeSpan) {
                AbsoluteSizeSpan s = ((AbsoluteSizeSpan) style[j]);
                float sizeDip = s.getSize();
                if (!s.getDip()) {
                    Application application = App.get();
                    sizeDip /= application.getResources().getDisplayMetrics().density;
                }
                // px in CSS is the equivalance of dip in Android
                out.append(String.format("<span style=\"font-size:%.0fpx\";>", sizeDip));
            }
            if (style[j] instanceof RelativeSizeSpan) {
                float sizeEm = ((RelativeSizeSpan) style[j]).getSizeChange();
                out.append(String.format("<span style=\"font-size:%.2fem;\">", sizeEm));
            }
            if (style[j] instanceof ForegroundColorSpan) {
                int color = ((ForegroundColorSpan) style[j]).getForegroundColor();
                out.append(String.format("<span style=\"color:#%06X;\">", 0xFFFFFF & color));
            }
            if (style[j] instanceof BackgroundColorSpan) {
                int color = ((BackgroundColorSpan) style[j]).getBackgroundColor();
                out.append(String.format("<span style=\"background-color:#%06X;\">", 0xFFFFFF & color));
            }
        }
        withinStyle(out, text, i, next);
        for (int j = style.length - 1; j >= 0; j--) {
            if (style[j] instanceof BackgroundColorSpan) {
                out.append("</span>");
            }
            if (style[j] instanceof ForegroundColorSpan) {
                out.append("</span>");
            }
            if (style[j] instanceof RelativeSizeSpan) {
                out.append("</span>");
            }
            if (style[j] instanceof AbsoluteSizeSpan) {
                out.append("</span>");
            }
            if (style[j] instanceof URLSpan) {
                out.append("</a>");
            }
            if (style[j] instanceof StrikethroughSpan) {
                out.append("</span>");
            }
            if (style[j] instanceof UnderlineSpan) {
                out.append("</u>");
            }
            if (style[j] instanceof SubscriptSpan) {
                out.append("</sub>");
            }
            if (style[j] instanceof SuperscriptSpan) {
                out.append("</sup>");
            }
            if (style[j] instanceof TypefaceSpan) {
                String s = ((TypefaceSpan) style[j]).getFamily();
                if (s.equals("monospace")) {
                    out.append("</tt>");
                }
            }
            if (style[j] instanceof StyleSpan) {
                int s = ((StyleSpan) style[j]).getStyle();
                if ((s & Typeface.BOLD) != 0) {
                    out.append("</b>");
                }
                if ((s & Typeface.ITALIC) != 0) {
                    out.append("</i>");
                }
            }
        }
    }
}
Also used : SuperscriptSpan(android.text.style.SuperscriptSpan) ForegroundColorSpan(android.text.style.ForegroundColorSpan) RelativeSizeSpan(android.text.style.RelativeSizeSpan) URLSpan(android.text.style.URLSpan) CharacterStyle(android.text.style.CharacterStyle) UnderlineSpan(android.text.style.UnderlineSpan) AbsoluteSizeSpan(android.text.style.AbsoluteSizeSpan) StyleSpan(android.text.style.StyleSpan) SubscriptSpan(android.text.style.SubscriptSpan) Application(android.app.Application) BackgroundColorSpan(android.text.style.BackgroundColorSpan) TypefaceSpan(android.text.style.TypefaceSpan) StrikethroughSpan(android.text.style.StrikethroughSpan) ImageSpan(android.text.style.ImageSpan)

Example 93 with RelativeSizeSpan

use of android.text.style.RelativeSizeSpan in project AndroidLife by CaMnter.

the class SpanRecyclerAdapter method setSpanContent.

@SuppressLint("SetTextI18n")
public void setSpanContent(TextView labelTV, TextView contentTV, String content, int position) {
    SpannableStringBuilder ssb = new SpannableStringBuilder(content);
    String sub = "Save";
    int start = content.indexOf("Save");
    switch(position) {
        case URL_SPAN:
            {
                labelTV.setText("URLSpan");
                ssb.setSpan(new URLSpan("https://github.com/CaMnter"), start, sub.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                contentTV.setText(ssb);
                // 在单击链接时凡是有要执行的动作,都必须设置MovementMethod对象
                contentTV.setMovementMethod(LinkMovementMethod.getInstance());
                // 设置点击后的颜色,这里涉及到ClickableSpan的点击背景
                contentTV.setHighlightColor(0xff8FABCC);
                break;
            }
        case UNDERLINE_SPAN:
            {
                labelTV.setText("UnderlineSpan");
                ssb.setSpan(new UnderlineSpan(), start, start + sub.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case TYPEFACE_SPAN:
            {
                labelTV.setText("TypefaceSpan ( Examples include \"monospace\", \"serif\", and \"sans-serif\". )");
                ssb.setSpan(new TypefaceSpan("serif"), start, start + sub.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case TEXT_APPERARANCE_SPAN:
            {
                labelTV.setText("TextAppearanceSpan");
                ColorStateList colorStateList;
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    colorStateList = this.activity.getColorStateList(R.color.selector_apperarance_span);
                } else {
                    colorStateList = this.activity.getResources().getColorStateList(R.color.selector_apperarance_span);
                }
                ssb.setSpan(new TextAppearanceSpan("serif", Typeface.BOLD_ITALIC, this.activity.getResources().getDimensionPixelSize(R.dimen.text_appearance_span), colorStateList, colorStateList), start, start + sub.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case TAB_STOP_SPAN:
            {
                labelTV.setText("TabStopSpan.Standard");
                String[] subs = content.split(" ");
                ssb = new SpannableStringBuilder();
                /**
                 * TabStopSpan. Standard related to \t and \n
                 * TabStopSpan.Standard 跟 \t 和 \n 有关系
                 */
                for (String sub1 : subs) {
                    ssb.append("\t").append(sub1).append(" ");
                    ssb.append("\n");
                }
                ssb.setSpan(new TabStopSpan.Standard(126), 0, ssb.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case SUPERS_SCRIPT_SPAN:
            {
                labelTV.setText("SuperscriptSpan");
                ssb.replace(start, start + sub.length(), "Save6");
                Parcel parcel = Parcel.obtain();
                parcel.writeInt(6);
                int sixPosition = ssb.toString().indexOf("6");
                ssb.setSpan(new SuperscriptSpan(parcel), sixPosition, sixPosition + 1, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                parcel.recycle();
                contentTV.setText(ssb);
                break;
            }
        case SUB_SCRIPT_SPAN:
            {
                labelTV.setText("SubscriptSpan");
                ssb.replace(start, start + sub.length(), "Save6");
                Parcel parcel = Parcel.obtain();
                parcel.writeInt(6);
                int sixPosition = ssb.toString().indexOf("6");
                ssb.setSpan(new SubscriptSpan(parcel), sixPosition, sixPosition + 1, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                parcel.recycle();
                contentTV.setText(ssb);
                break;
            }
        case STRIKE_THROUGH_SPAN:
            {
                labelTV.setText("StrikethroughSpan");
                ssb.setSpan(new StrikethroughSpan(), start, start + sub.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case SCALE_X_SPAN:
            {
                labelTV.setText("ScaleXSpan");
                ssb.setSpan(new ScaleXSpan(2.0f), start, start + sub.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case STYLE_SPAN:
            {
                labelTV.setText("StyleSpan ( Typeface.NORMAL,Typeface.BOLD,Typeface.ITALIC,Typeface.BOLD_ITALIC ) ");
                ssb.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), start, start + sub.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case RELATIVE_SIZE_SPAN:
            {
                labelTV.setText("RelativeSizeSpan");
                ssb.setSpan(new RelativeSizeSpan(6.0f), start, start + sub.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case QUOTO_SPAN:
            {
                labelTV.setText("QuoteSpan");
                ssb.setSpan(new QuoteSpan(0xff000000), start, start + sub.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case MASK_FILTER_SPAN:
            {
                labelTV.setText("MaskFilterSpan ( BlurMaskFilter EmbossMaskFilter ) \n Activity: android:hardwareAccelerated=\"false\"\n ");
                MaskFilterSpan embossMaskFilterSpan = new MaskFilterSpan(new EmbossMaskFilter(new float[] { 3, 3, 9 }, 3.0f, 12, 16));
                ssb.setSpan(embossMaskFilterSpan, start, start + sub.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                contentTV.setText(ssb);
                String you = "you";
                int indexYou = content.indexOf(you);
                MaskFilterSpan blurMaskFilterSpan = new MaskFilterSpan(new BlurMaskFilter(3, BlurMaskFilter.Blur.OUTER));
                ssb.setSpan(blurMaskFilterSpan, indexYou, indexYou + you.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case LEADING_MARGIN_SPAN:
            {
                labelTV.setText("LeadingMarginSpan");
                ssb.append(" ").append(ssb.toString()).append(ssb.toString()).append(ssb.toString());
                ssb.setSpan(new LeadingMarginSpan.Standard(96, 36), 0, ssb.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case IMAGE_SPAN:
            {
                labelTV.setText("ImageSpan");
                ssb.replace(start, start + sub.length(), " Save");
                ssb.setSpan(new ImageSpan(this.activity, R.drawable.ic_mm_normal, ImageSpan.ALIGN_BASELINE), 0, 1, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case ICON_MARGIN_SPAN:
            {
                labelTV.setText("IconMarginSpan");
                Bitmap bitmap = BitmapFactory.decodeResource(this.activity.getResources(), R.drawable.ic_mm_normal);
                ssb.setSpan(new IconMarginSpan(bitmap, 60), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                // bitmap.recycle();
                contentTV.setText(ssb);
                break;
            }
        case FOREGROUND_COLOR_SPAN:
            {
                labelTV.setText("ForegroundColorSpan");
                ssb.setSpan(new ForegroundColorSpan(0xff303F9F), start, start + sub.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case DRAWABLE_MARGIN_SPAN:
            {
                labelTV.setText("DrawableMarginSpan");
                ssb.setSpan(new DrawableMarginSpan(ResourcesUtils.getDrawable(this.activity, R.drawable.ic_mm_normal), 6), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case BULLET_SPAN:
            {
                labelTV.setText("BulletSpan");
                ssb.setSpan(new BulletSpan(66, 0xff303F9F), start, start + sub.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case BACKGROUND_COLOR_SPAN:
            {
                labelTV.setText("BackgroundColorSpan");
                String you = "you";
                int indexYou = content.indexOf(you);
                ssb.setSpan(new BackgroundColorSpan(0x2f303F9F), start, start + sub.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                ssb.setSpan(new BackgroundColorSpan(0x2fFF4081), indexYou, indexYou + you.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case ALIGNMENT_SPAN_STANDARD:
            {
                labelTV.setText("AlignmentSpan.Standard");
                ssb.setSpan(new AlignmentSpan.Standard(Layout.Alignment.ALIGN_CENTER), 0, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case ABSOLUTE_SIZE_SPAN:
            {
                labelTV.setText("AbsoluteSizeSpan");
                ssb.setSpan(new AbsoluteSizeSpan(26, true), start, start + sub.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                contentTV.setText(ssb);
                break;
            }
        case CLICKABLE_SPAN:
            {
                labelTV.setText("ClickableSpan ( Please click \"Save\" )");
                SpanClickableSpan spanClickableSpan = new SpanClickableSpan(0xffFF4081, new ClickableSpanNoUnderline.OnClickListener<SpanClickableSpan>() {

                    /**
                     * ClickableSpan被点击
                     *
                     * @param widget widget
                     * @param span   span
                     */
                    @Override
                    public void onClick(View widget, SpanClickableSpan span) {
                        String urlString = span.getUrlString();
                        if (TextUtils.isEmpty(urlString))
                            return;
                        Uri uri = Uri.parse(urlString);
                        Context context = widget.getContext();
                        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
                        intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
                        try {
                            context.startActivity(intent);
                        } catch (ActivityNotFoundException e) {
                            Log.w("URLSpan", "Activity was not found for intent, " + intent.toString());
                        }
                    }
                });
                spanClickableSpan.setUrlString("https://github.com/CaMnter");
                ssb.setSpan(spanClickableSpan, start, start + sub.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                contentTV.setText(ssb);
                // 在单击链接时凡是有要执行的动作,都必须设置MovementMethod对象
                contentTV.setMovementMethod(LinkMovementMethod.getInstance());
                // 设置点击后的颜色,这里涉及到ClickableSpan的点击背景
                contentTV.setHighlightColor(0x00000000);
                break;
            }
    }
}
Also used : TextAppearanceSpan(android.text.style.TextAppearanceSpan) SuperscriptSpan(android.text.style.SuperscriptSpan) ColorStateList(android.content.res.ColorStateList) ScaleXSpan(android.text.style.ScaleXSpan) RelativeSizeSpan(android.text.style.RelativeSizeSpan) QuoteSpan(android.text.style.QuoteSpan) EmbossMaskFilter(android.graphics.EmbossMaskFilter) URLSpan(android.text.style.URLSpan) Uri(android.net.Uri) Bitmap(android.graphics.Bitmap) IconMarginSpan(android.text.style.IconMarginSpan) SubscriptSpan(android.text.style.SubscriptSpan) Context(android.content.Context) DrawableMarginSpan(android.text.style.DrawableMarginSpan) ForegroundColorSpan(android.text.style.ForegroundColorSpan) Parcel(android.os.Parcel) Intent(android.content.Intent) View(android.view.View) TextView(android.widget.TextView) SuppressLint(android.annotation.SuppressLint) UnderlineSpan(android.text.style.UnderlineSpan) AbsoluteSizeSpan(android.text.style.AbsoluteSizeSpan) MaskFilterSpan(android.text.style.MaskFilterSpan) BulletSpan(android.text.style.BulletSpan) ActivityNotFoundException(android.content.ActivityNotFoundException) StyleSpan(android.text.style.StyleSpan) BlurMaskFilter(android.graphics.BlurMaskFilter) SpannableStringBuilder(android.text.SpannableStringBuilder) BackgroundColorSpan(android.text.style.BackgroundColorSpan) TypefaceSpan(android.text.style.TypefaceSpan) StrikethroughSpan(android.text.style.StrikethroughSpan) ImageSpan(android.text.style.ImageSpan) SuppressLint(android.annotation.SuppressLint)

Example 94 with RelativeSizeSpan

use of android.text.style.RelativeSizeSpan in project memetastic by gsantner.

the class FontPreferenceCompat method loadFonts.

private void loadFonts(Context context, @Nullable AttributeSet attrs) {
    _defaultValue = _fontValues[0];
    if (attrs != null) {
        for (int i = 0; i < attrs.getAttributeCount(); i++) {
            String attrName = attrs.getAttributeName(i);
            String attrValue = attrs.getAttributeValue(i);
            if (attrName.equalsIgnoreCase("defaultValue")) {
                if (attrValue.startsWith("@")) {
                    int resId = Integer.valueOf(attrValue.substring(1));
                    attrValue = getContext().getString(resId);
                }
                _defaultValue = attrValue;
                break;
            }
        }
    }
    for (File file : getAdditionalFonts()) {
        _fontNames = appendToArray(_fontNames, file.getName().replace(".ttf", "").replace(".TTF", ""));
        _fontValues = appendToArray(_fontValues, file.getAbsolutePath());
    }
    Spannable[] fontText = new Spannable[_fontNames.length];
    for (int i = 0; i < _fontNames.length; i++) {
        fontText[i] = new SpannableString(_fontNames[i] + "\n" + _fontValues[i]);
        fontText[i].setSpan(new TypefaceObjectSpan(typeface(getContext(), _fontValues[i], null)), 0, _fontNames[i].length(), 0);
        fontText[i].setSpan(new RelativeSizeSpan(0.7f), _fontNames[i].length() + 1, fontText[i].length(), 0);
    }
    setDefaultValue(_defaultValue);
    setEntries(fontText);
    setEntryValues(_fontValues);
}
Also used : SpannableString(android.text.SpannableString) SpannableString(android.text.SpannableString) RelativeSizeSpan(android.text.style.RelativeSizeSpan) File(java.io.File) TextPaint(android.text.TextPaint) Paint(android.graphics.Paint) Spannable(android.text.Spannable)

Example 95 with RelativeSizeSpan

use of android.text.style.RelativeSizeSpan in project openScale by oliexdev.

the class FloatMeasurementView method setPreviousValueInner.

private void setPreviousValueInner(float newPreviousValue) {
    previousValue = newPreviousValue;
    if (!getUpdateViews()) {
        return;
    }
    if (previousValue >= 0.0f) {
        final float diff = value - previousValue;
        char symbol;
        if (diff > 0.0) {
            symbol = SYMBOL_UP;
        } else if (diff < 0.0) {
            symbol = SYMBOL_DOWN;
        } else {
            symbol = SYMBOL_NEUTRAL;
        }
        SpannableStringBuilder text = new SpannableStringBuilder(nameText);
        text.append("\n");
        int start = text.length();
        text.append(symbol);
        text.setSpan(new ForegroundColorSpan(Color.GRAY), start, text.length(), Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
        start = text.length();
        text.append(' ');
        text.append(formatValue(diff, true));
        text.setSpan(new RelativeSizeSpan(0.8f), start, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        setNameView(text);
    } else {
        setNameView(nameText);
    }
}
Also used : ForegroundColorSpan(android.text.style.ForegroundColorSpan) RelativeSizeSpan(android.text.style.RelativeSizeSpan) SpannableStringBuilder(android.text.SpannableStringBuilder)

Aggregations

RelativeSizeSpan (android.text.style.RelativeSizeSpan)233 SpannableString (android.text.SpannableString)121 StyleSpan (android.text.style.StyleSpan)91 ForegroundColorSpan (android.text.style.ForegroundColorSpan)72 SpannableStringBuilder (android.text.SpannableStringBuilder)52 TypefaceSpan (android.text.style.TypefaceSpan)43 StrikethroughSpan (android.text.style.StrikethroughSpan)33 SuperscriptSpan (android.text.style.SuperscriptSpan)32 UnderlineSpan (android.text.style.UnderlineSpan)31 Spannable (android.text.Spannable)29 AbsoluteSizeSpan (android.text.style.AbsoluteSizeSpan)28 SubscriptSpan (android.text.style.SubscriptSpan)25 BackgroundColorSpan (android.text.style.BackgroundColorSpan)24 View (android.view.View)24 BidiFormatter (android.text.BidiFormatter)20 Formatter (android.text.format.Formatter)20 CharacterStyle (android.text.style.CharacterStyle)20 TextView (android.widget.TextView)20 SuppressLint (android.annotation.SuppressLint)17 URLSpan (android.text.style.URLSpan)17