TextView TV = (TextView)findViewById(R.id.mytextview01); Spannable word = new SpannableString("Your message"); word.setSpan(new ForegroundColorSpan(Color.BLUE), 0, word.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); TV.setText(word); Spannable wordTwo = new SpannableString("Your new message"); wordTwo.setSpan(new ForegroundColorSpan(Color.RED), 0, wordTwo.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); TV.append(wordTwo);
Spannable text = new SpannableString(actionBar.getTitle()); text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); actionBar.setTitle(text);
Spannable summary = new SpannableString("Currently This Color"); summary.setSpan(new ForegroundColorSpan(color), 0, summary.length(), 0); preference.setSummary(summary);
private void formatPreviewText(TextView preview, CharSequence beforePreviewText, String sigil) { Spannable previewText = (Spannable)preview.getText(); previewText.setSpan(buildSenderSpan(), 0, beforePreviewText.length() + sigil.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); int previewSpanColor = buildPreviewSpanColor(); // Set span (color) for preview message previewText.setSpan(new ForegroundColorSpan(previewSpanColor), beforePreviewText.length() + sigil.length(), previewText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); }
PackageManager pm = kyoPrint.getPackageManager(); Intent viewIntent = new Intent(Intent.ACTION_VIEW); Intent editIntent = new Intent(Intent.ACTION_EDIT); viewIntent.setDataAndType(uri, type); editIntent.setDataAndType(uri, type); Intent openInChooser = Intent.createChooser(viewIntent, "Open in..."); // Append " (for editing)" to applicable apps, otherwise they will show up twice identically Spannable forEditing = new SpannableString(" (for editing)"); forEditing.setSpan(new ForegroundColorSpan(Color.CYAN), 0, forEditing.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); List<ResolveInfo> resInfo = pm.queryIntentActivities(editIntent, 0); Intent[] extraIntents = new Intent[resInfo.size()]; for (int i = 0; i < resInfo.size(); i++) { // Extract the label, append it, and repackage it in a LabeledIntent ResolveInfo ri = resInfo.get(i); String packageName = ri.activityInfo.packageName; Intent intent = new Intent(); intent.setComponent(new ComponentName(packageName, ri.activityInfo.name)); intent.setAction(Intent.ACTION_EDIT); intent.setDataAndType(uri, type); CharSequence label = TextUtils.concat(ri.loadLabel(pm), forEditing); extraIntents[i] = new LabeledIntent(intent, packageName, label, ri.icon); } openInChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents); startActivity(openInChooser);
private void stripUnderlines(TextView textView) { Spannable s = new SpannableString(textView.getText()); URLSpan[] spans = s.getSpans(0, s.length(), URLSpan.class); for (URLSpan span: spans) { int start = s.getSpanStart(span); int end = s.getSpanEnd(span); s.removeSpan(span); span = new URLSpanNoUnderline(span.getURL()); s.setSpan(span, start, end, 0); } textView.setText(s); }
@Override public Spannable getDisplayedAuthor(Context context, boolean linkify, int color) { if (displayedAuthor == null) { if (TextUtils.isEmpty(by)) { displayedAuthor = new SpannableString(""); } else { defaultColor = ContextCompat.getColor(context, AppUtils.getThemedResId(context, linkify ? android.R.attr.textColorLink : android.R.attr.textColorSecondary)); displayedAuthor = createAuthorSpannable(linkify); } } if (displayedAuthor.length() == 0) { return displayedAuthor; } displayedAuthor.setSpan(new ForegroundColorSpan(color != 0 ? color : defaultColor), AUTHOR_SEPARATOR.length(), displayedAuthor.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); return displayedAuthor; }
private void stripUnderlines(TextView textView) { Spannable s = new SpannableString(textView.getText()); URLSpan[] spans = s.getSpans(0, s.length(), URLSpan.class); for (URLSpan span: spans) { int start = s.getSpanStart(span); int end = s.getSpanEnd(span); s.removeSpan(span); span = new URLSpanNoUnderline(span.getURL()); s.setSpan(span, start, end, 0); } textView.setText(s); }
/** * @param context * @param spannable * @param title * @return */ public static SpannableStringBuilder getText(Activity context, Spannable spannable, String title) { if (spannable == null || spannable.length() <= 0) { Log.e(TAG, "getText spannable == null || spannable.length() <= 0 >> return new SpannableStringBuilder();"); return new SpannableStringBuilder(); } SpannableStringBuilder builder = new SpannableStringBuilder(spannable); builder.clearSpans();// should clear old spans URLSpan[] urls = spannable.getSpans(0, spannable.length(), URLSpan.class); if (urls != null) { for (URLSpan urlSpan : urls) { if (urlSpan != null) { MyURLSpan myURLSpan = new MyURLSpan(context, urlSpan.getURL(), title); builder.setSpan(myURLSpan, spannable.getSpanStart(urlSpan), spannable .getSpanEnd(urlSpan), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); } } } return builder; }
private void searchFor(String text) { TextView prose=(TextView)findViewById(R.id.prose); Spannable raw=new SpannableString(prose.getText()); BackgroundColorSpan[] spans=raw.getSpans(0, raw.length(), BackgroundColorSpan.class); for (BackgroundColorSpan span : spans) { raw.removeSpan(span); } int index=TextUtils.indexOf(raw, text); while (index >= 0) { raw.setSpan(new BackgroundColorSpan(0xFF8B008B), index, index + text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); index=TextUtils.indexOf(raw, text, index + text.length()); } prose.setText(raw); } }
private void assertAlignment(Spannable spannable, Layout.Alignment alignment) { if (alignment != null) { AlignmentSpan.Standard[] alignmentSpans = spannable.getSpans(0, spannable.length(), AlignmentSpan.Standard.class); assertThat(alignmentSpans).hasLength(1); assertThat(alignmentSpans[0].getAlignment()).isEqualTo(alignment); } else { assertThat(spannable.getSpans(0, spannable.length(), AlignmentSpan.Standard.class)) .hasLength(0); } }
private void assertForeground(Spannable spannable, int foregroundColor) { ForegroundColorSpan[] foregroundColorSpans = spannable.getSpans(0, spannable.length(), ForegroundColorSpan.class); assertThat(foregroundColorSpans[foregroundColorSpans.length - 1].getForegroundColor()) .isEqualTo(foregroundColor); }
private void assertStyle(Spannable spannable, int fontStyle) { StyleSpan[] styleSpans = spannable.getSpans(0, spannable.length(), StyleSpan.class); assertThat(styleSpans[styleSpans.length - 1].getStyle()).isEqualTo(fontStyle); }
private void assertFont(Spannable spannable, String font) { TypefaceSpan[] typefaceSpans = spannable.getSpans(0, spannable.length(), TypefaceSpan.class); assertThat(typefaceSpans[typefaceSpans.length - 1].getFamily()).isEqualTo(font); }
private void assertRelativeFontSize(Spannable spannable, float relativeFontSize) { RelativeSizeSpan[] relativeSizeSpans = spannable.getSpans(0, spannable.length(), RelativeSizeSpan.class); assertThat(relativeSizeSpans).hasLength(1); assertThat(relativeSizeSpans[0].getSizeChange()).isEqualTo(relativeFontSize); }
private void assertBackground(Spannable spannable, int backgroundColor) { BackgroundColorSpan[] backgroundColorSpans = spannable.getSpans(0, spannable.length(), BackgroundColorSpan.class); if (backgroundColor != 0) { assertThat(backgroundColorSpans[backgroundColorSpans.length - 1].getBackgroundColor()) .isEqualTo(backgroundColor); } else { assertThat(backgroundColorSpans).hasLength(0); } }
private void assertAbsoluteFontSize(Spannable spannable, int absoluteFontSize) { AbsoluteSizeSpan[] absoluteSizeSpans = spannable.getSpans(0, spannable.length(), AbsoluteSizeSpan.class); assertThat(absoluteSizeSpans).hasLength(1); assertThat(absoluteSizeSpans[0].getSize()).isEqualTo(absoluteFontSize); }
private void assertUnderline(Spannable spannable, boolean isUnderline) { UnderlineSpan[] underlineSpans = spannable.getSpans(0, spannable.length(), UnderlineSpan.class); assertWithMessage(isUnderline ? "must be underlined" : "must not be underlined") .that(underlineSpans) .hasLength(isUnderline ? 1 : 0); }
private void assertStrikethrough(Spannable spannable, boolean isStrikethrough) { StrikethroughSpan[] striketroughSpans = spannable.getSpans(0, spannable.length(), StrikethroughSpan.class); assertWithMessage(isStrikethrough ? "must be strikethrough" : "must not be strikethrough") .that(striketroughSpans) .hasLength(isStrikethrough ? 1 : 0); }