@Override public RemoteViews getViewAt(int position) { ScheduleDailyGroupModel model = list.get(position); RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.layout_schedule_daily_widget); remoteViews.setTextViewText(R.id.title_schedule_daily, model.day); CharSequence builder = null; for (ScheduleDailyModel e : model.scheduleDailyModels()) { String course = e.desc.substring(0, e.desc.indexOf(" Ruang: ")); String room = e.desc.substring(e.desc.indexOf(" Ruang: ") + 8); SpannableString title = new SpannableString(course); title.setSpan(new RelativeSizeSpan(1.2f), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); SpannableString time = new SpannableString("R. " + room + "\t\t" + e.time); time.setSpan(new ForegroundColorSpan(context.getResources().getColor(android.R.color.darker_gray)), 0, time.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); if (builder == null) { builder = TextUtils.concat(title, "\n", time + "\n\n"); } else { builder = TextUtils.concat(builder, title, "\n", time + "\n\n"); } } remoteViews.setTextViewText(R.id.content_schedule_daily, builder == null ? "(empty)\n\n" : builder); return remoteViews; }
private void initializeResources() { getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); getSupportActionBar().setCustomView(R.layout.centered_app_title); ImageButton okButton = (ImageButton) findViewById(R.id.ok_button); showButton = (ImageButton) findViewById(R.id.passphrase_visibility); hideButton = (ImageButton) findViewById(R.id.passphrase_visibility_off); visibilityToggle = (AnimatingToggle) findViewById(R.id.button_toggle); passphraseText = (EditText) findViewById(R.id.passphrase_edit); SpannableString hint = new SpannableString(" " + getString(R.string.PassphrasePromptActivity_enter_passphrase)); hint.setSpan(new RelativeSizeSpan(0.9f), 0, hint.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); hint.setSpan(new TypefaceSpan("sans-serif"), 0, hint.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); passphraseText.setHint(hint); okButton.setOnClickListener(new OkButtonClickListener()); showButton.setOnClickListener(new ShowButtonOnClickListener()); hideButton.setOnClickListener(new HideButtonOnClickListener()); passphraseText.setOnEditorActionListener(new PassphraseActionListener()); passphraseText.setImeActionLabel(getString(R.string.prompt_passphrase_activity__unlock), EditorInfo.IME_ACTION_DONE); }
public void setHint(@NonNull String hint, @Nullable CharSequence subHint) { this.hint = new SpannableString(hint); this.hint.setSpan(new RelativeSizeSpan(0.8f), 0, hint.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); if (subHint != null) { this.subHint = new SpannableString(subHint); this.subHint.setSpan(new RelativeSizeSpan(0.8f), 0, subHint.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); } else { this.subHint = null; } if (this.subHint != null) { super.setHint(new SpannableStringBuilder().append(ellipsizeToWidth(this.hint)) .append("\n") .append(ellipsizeToWidth(this.subHint))); } else { super.setHint(ellipsizeToWidth(this.hint)); } }
@Override public void onBindViewHolder(BucketViewHolder holder, int position) { BucketBean bucketBean = mBucketList.get(position); String bucketName = bucketBean.getBucketName(); if (position != 0) { SpannableString nameSpannable = new SpannableString(bucketName + "\n" + bucketBean.getImageCount() + "张"); nameSpannable.setSpan(new ForegroundColorSpan(Color.GRAY), bucketName.length(), nameSpannable.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); nameSpannable.setSpan(new RelativeSizeSpan(0.8f), bucketName.length(), nameSpannable.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); holder.mTvBucketName.setText(nameSpannable); } else { holder.mTvBucketName.setText(bucketName); } if (mSelectedBucket != null && TextUtils.equals(mSelectedBucket.getBucketId(), bucketBean.getBucketId())) { holder.mRbSelected.setVisibility(View.VISIBLE); holder.mRbSelected.setChecked(true); } else { holder.mRbSelected.setVisibility(View.GONE); } String path = bucketBean.getCover(); mConfiguration.getImageLoader() .displayImage(holder.itemView.getContext(), path, holder.mIvBucketCover, mDefaultImage, mConfiguration.getImageConfig(), true, mConfiguration.isPlayGif(), 100, 100, bucketBean.getOrientation()); }
@Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 0x001: SpannableString string = new SpannableString("设置文字的前景色为淡蓝色"); RelativeSizeSpan sizeSpan = new RelativeSizeSpan(1.5f); string.setSpan(sizeSpan, pos, pos + 1, Spanned.SPAN_EXCLUSIVE_INCLUSIVE); bgtext.setText(string); pos++; if (pos >= bgtext.getText().length()) { pos = 0; } Message ms = Message.obtain(); ms.what = 0x001; handler.sendEmptyMessageDelayed(0x001, 150); break; } }
public SpannableStringBuilder spannerbleTitleForHeaderInSection( ATableView tableView, int section) { HH2SectionData sd = data.get(section); String text = sd.getHeader(); SpannableStringBuilder builder = new SpannableStringBuilder(text); builder.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); if (text.contains("$")) { int index = text.indexOf("$") + 1; builder.setSpan(new ForegroundColorSpan(Color.RED), index, text.length(), SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE); builder.setSpan(new RelativeSizeSpan(0.55f), index, text.length(), SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE); builder.replace(index - 1, index, "\n"); } return builder; }
private void endCssStyle(String tag, Editable text) { Strikethrough s = getLast(text, Strikethrough.class); if (s != null) { setSpanFromMark(tag, text, s, new StrikethroughSpan()); } Background b = getLast(text, Background.class); if (b != null) { setSpanFromMark(tag, text, b, new BackgroundColorSpan(b.mBackgroundColor)); } Foreground f = getLast(text, Foreground.class); if (f != null) { setSpanFromMark(tag, text, f, new ForegroundColorSpan(f.mForegroundColor)); } AbsoluteSize a = getLast(text, AbsoluteSize.class); if (a != null) { setSpanFromMark(tag, text, a, new AbsoluteSizeSpan(a.getTextSize())); } RelativeSize r = getLast(text, RelativeSize.class); if (r != null) { setSpanFromMark(tag, text, r, new RelativeSizeSpan(r.getTextProportion())); } }
public void setHint(@NonNull String hint, @Nullable CharSequence subHint) { this.hint = hint; if (subHint != null) { this.subHint = new SpannableString(subHint); this.subHint.setSpan(new RelativeSizeSpan(0.5f), 0, subHint.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); } else { this.subHint = null; } if (this.subHint != null) { super.setHint(new SpannableStringBuilder().append(ellipsizeToWidth(this.hint)) .append("\n") .append(ellipsizeToWidth(this.subHint))); } else { super.setHint(ellipsizeToWidth(this.hint)); } }
/** * Set string with spannable. */ public static SpannableStringBuilder getSpannablePriceTotalText(Context context, String text, String fontPath, boolean setFontBigger) { String[] result = text.split("="); String first = result[0]; String second = result[1]; first = first.concat("="); Typeface font = Typeface.createFromAsset(context.getAssets(), fontPath); SpannableStringBuilder builder = new SpannableStringBuilder(); SpannableString dkgraySpannable = new SpannableString(first + ""); builder.append(dkgraySpannable); SpannableString blackSpannable = new SpannableString(second); if (setFontBigger) { blackSpannable.setSpan(new RelativeSizeSpan(1.3f), 0, second.length(), 0); // set size } // blackSpannable.setSpan(new CustomTypefaceSpan("", font), 0, second.length(), 0); // font weight builder.append(blackSpannable); return builder; }
public void setPenAttr(CaptionPenAttr penAttr) { mCharacterStyles.clear(); if (penAttr.italic) { mCharacterStyles.add(new StyleSpan(Typeface.ITALIC)); } if (penAttr.underline) { mCharacterStyles.add(new UnderlineSpan()); } switch (penAttr.penSize) { case CaptionPenAttr.PEN_SIZE_SMALL: mCharacterStyles.add(new RelativeSizeSpan(PROPORTION_PEN_SIZE_SMALL)); break; case CaptionPenAttr.PEN_SIZE_LARGE: mCharacterStyles.add(new RelativeSizeSpan(PROPORTION_PEN_SIZE_LARGE)); break; } switch (penAttr.penOffset) { case CaptionPenAttr.OFFSET_SUBSCRIPT: mCharacterStyles.add(new SubscriptSpan()); break; case CaptionPenAttr.OFFSET_SUPERSCRIPT: mCharacterStyles.add(new SuperscriptSpan()); break; } }
private void endHeader() { int len = mResult.length(); Object obj = getLast(Header.class); int where = mResult.getSpanStart(obj); mResult.removeSpan(obj); // Back off not to change only the text, not the blank line. while (len > where && mResult.charAt(len - 1) == '\n') { len--; } if (where != len) { Header h = (Header) obj; mResult.setSpan(new RelativeSizeSpan(HEADER_SIZES[h.mLevel]), where, len, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); mResult.setSpan(new BoldSpan(), where, len, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } }
private void initializeResources() { getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); getSupportActionBar().setCustomView(R.layout.light_centered_app_title); mitigateAndroidTilingBug(); ImageButton okButton = (ImageButton) findViewById(R.id.ok_button); passphraseText = (EditText) findViewById(R.id.passphrase_edit); SpannableString hint = new SpannableString(getString(R.string.PassphrasePromptActivity_enter_passphrase)); hint.setSpan(new RelativeSizeSpan(0.8f), 0, hint.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); hint.setSpan(new TypefaceSpan("sans-serif"), 0, hint.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); hint.setSpan(new ForegroundColorSpan(0x66000000), 0, hint.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); passphraseText.setHint(hint); okButton.setOnClickListener(new OkButtonClickListener()); passphraseText.setOnEditorActionListener(new PassphraseActionListener()); passphraseText.setImeActionLabel(getString(R.string.prompt_passphrase_activity__unlock), EditorInfo.IME_ACTION_DONE); }
private void onTranslationChanged() throws JSONException { SpannableString ss1 = new SpannableString(getResources().getString(R.string.getting_match)); ss1.setSpan(new RelativeSizeSpan(1.7f), 0, ss1.length(), 0); final ProgressDialog progress = new ProgressDialog(this); progress.setMessage(ss1); progress.setCancelable(false); progress.show(); RequestDelegate requestDelegate = RequestDelegate.getInstance(getApplicationContext()); requestDelegate.performTranslationChange(prefs.getString("translation", "en-hilali"), getAllCurrentAyahs(), new NetworkRequestCallback() { @Override public void onSuccess(JSONObject response) { Log.v(TAG, response.toString()); parseTranslationResponse(response); progress.dismiss(); } @Override public void onFailure(Throwable error) { onSearchQueryError(error); progress.dismiss(); } }); }
private void processSup( boolean opening, Editable output) { int len = output.length(); if(opening) { //output.setSpan(new AbsoluteSizeSpan(scriptSize,false), len, len, Spannable.SPAN_MARK_MARK); //output.setSpan(new RelativeSizeSpan(0.5f), len, len, Spannable.SPAN_MARK_MARK); output.setSpan(new SuperscriptSpan(), len, len, Spannable.SPAN_MARK_MARK); } else { Object obj = getLast(output, SuperscriptSpan.class); int where = output.getSpanStart(obj); output.removeSpan(obj); //obj = getLast(output, RelativeSizeSpan.class); //output.removeSpan(obj); if (where != len&&where>=0) { //output.setSpan(new AbsoluteSizeSpan(scriptSize, false), where, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); output.setSpan(new RelativeSizeSpan(0.7f), where, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); output.setSpan(new SuperscriptSpan(), where, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } //obj = getLast(output, AbsoluteSizeSpan.class); //where = output.getSpanStart(obj); //output.removeSpan(obj); //if (where != len) { // output.setSpan(new AbsoluteSizeSpan(scriptSize, false), where, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); // //output.setSpan(new RelativeSizeSpan(0.5f), where, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //} } }
public static void formatSignificant(final Editable s, final RelativeSizeSpan insignificantRelativeSizeSpan) { s.removeSpan(SIGNIFICANT_SPAN); if (insignificantRelativeSizeSpan != null) { s.removeSpan(insignificantRelativeSizeSpan); } final Matcher m = P_SIGNIFICANT.matcher(s); if (m.find()) { final int pivot = m.group().length(); s.setSpan(SIGNIFICANT_SPAN, 0, pivot, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); if (s.length() > pivot && insignificantRelativeSizeSpan != null) { s.setSpan(insignificantRelativeSizeSpan, pivot, s.length(), Spannable .SPAN_EXCLUSIVE_EXCLUSIVE); } } }
public static void formatSignificant(@Nonnull final Spannable spannable, @Nullable final RelativeSizeSpan insignificantRelativeSizeSpan) { spannable.removeSpan(SIGNIFICANT_SPAN); if (insignificantRelativeSizeSpan != null) spannable.removeSpan(insignificantRelativeSizeSpan); final Matcher m = P_SIGNIFICANT.matcher(spannable); if (m.find()) { final int pivot = m.group().length(); if (pivot > 0) spannable.setSpan(SIGNIFICANT_SPAN, 0, pivot, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); if (spannable.length() > pivot && insignificantRelativeSizeSpan != null) spannable.setSpan(insignificantRelativeSizeSpan, pivot, spannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } }
public CharSequence toSpannable() { LinkedList<ChangeLogRow> rows = mChangeLog.getRows(); SpannableStringBuilder stringBuilder = new SpannableStringBuilder(); boolean isFirstRow = true; for (ChangeLogRow row : rows) { if(row.isHeader()) { if(!isFirstRow) stringBuilder.append("\n"); int versionStart = stringBuilder.length(); int versionEnd = versionStart + row.getVersionName().length(); stringBuilder.append(row.getVersionName()); stringBuilder.setSpan(new StyleSpan(Typeface.BOLD), versionStart, versionEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); stringBuilder.setSpan(new RelativeSizeSpan(1.5f), versionStart, versionEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); isFirstRow = false; } else { CharSequence displayChange = Html.fromHtml(row.getChangeText()); int changeStart = stringBuilder.length(); int changeEnd = changeStart + displayChange.length(); stringBuilder.append(" \u2022 ").append(displayChange); //stringBuilder.setSpan(new BulletSpan(15), changeStart, changeEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //stringBuilder.append("\n"); } stringBuilder.append("\n"); } return stringBuilder; }
private static void endHeader(SpannableStringBuilder text) { int len = text.length(); Object obj = getLast(text, Header.class); int where = text.getSpanStart(obj); text.removeSpan(obj); // Back off not to change only the text, not the blank line. while (len > where && text.charAt(len - 1) == '\n') { len--; } if (where != len) { Header h = (Header) obj; if (h == null) { Log.e("endHeader", "h = null"); return; } text.setSpan(new RelativeSizeSpan(HEADER_SIZES[h.mLevel]), where, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); text.setSpan(new StyleSpan(Typeface.BOLD), where, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } }
private static void endHeader(SpannableStringBuilder text) { int len = text.length(); Object obj = getLast(text, Header.class); int where = text.getSpanStart(obj); text.removeSpan(obj); // Back off not to change only the text, not the blank line. while (len > where && text.charAt(len - 1) == '\n') { len--; } if (where != len) { Header h = (Header) obj; text.setSpan(new RelativeSizeSpan(HEADER_SIZES[h.mLevel]), where, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); text.setSpan(new StyleSpan(Typeface.BOLD), where, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } }
private SpannableString generateCenterSpannableText() { SpannableString s = new SpannableString("MPAndroidChart\ndeveloped by Philipp Jahoda"); s.setSpan(new RelativeSizeSpan(1.5f), 0, 14, 0); s.setSpan(new StyleSpan(Typeface.NORMAL), 14, s.length() - 15, 0); s.setSpan(new ForegroundColorSpan(Color.GRAY), 14, s.length() - 15, 0); s.setSpan(new RelativeSizeSpan(.65f), 14, s.length() - 15, 0); s.setSpan(new StyleSpan(Typeface.ITALIC), s.length() - 14, s.length(), 0); s.setSpan(new ForegroundColorSpan(ColorTemplate.getHoloBlue()), s.length() - 14, s.length(), 0); return s; }
private SpannableString generateCenterSpannableText() { SpannableString s = new SpannableString("MPAndroidChart\ndeveloped by Philipp Jahoda"); s.setSpan(new RelativeSizeSpan(1.7f), 0, 14, 0); s.setSpan(new StyleSpan(Typeface.NORMAL), 14, s.length() - 15, 0); s.setSpan(new ForegroundColorSpan(Color.GRAY), 14, s.length() - 15, 0); s.setSpan(new RelativeSizeSpan(.8f), 14, s.length() - 15, 0); s.setSpan(new StyleSpan(Typeface.ITALIC), s.length() - 14, s.length(), 0); s.setSpan(new ForegroundColorSpan(ColorTemplate.getHoloBlue()), s.length() - 14, s.length(), 0); return s; }
private SpannableString generateCenterSpannableText() { SpannableString s = new SpannableString("Realm.io\nmobile database"); s.setSpan(new ForegroundColorSpan(Color.rgb(240, 115, 126)), 0, 8, 0); s.setSpan(new RelativeSizeSpan(2.2f), 0, 8, 0); s.setSpan(new StyleSpan(Typeface.ITALIC), 9, s.length(), 0); s.setSpan(new ForegroundColorSpan(ColorTemplate.getHoloBlue()), 9, s.length(), 0); s.setSpan(new RelativeSizeSpan(0.85f), 9, s.length(), 0); return s; }
private SpannableString generateCenterText() { SpannableString s = new SpannableString("MPAndroidChart\ncreated by\nPhilipp Jahoda"); s.setSpan(new RelativeSizeSpan(1.6f), 0, 14, 0); s.setSpan(new ForegroundColorSpan(ColorTemplate.VORDIPLOM_COLORS[0]), 0, 14, 0); s.setSpan(new RelativeSizeSpan(.9f), 14, 25, 0); s.setSpan(new ForegroundColorSpan(Color.GRAY), 14, 25, 0); s.setSpan(new RelativeSizeSpan(1.4f), 25, s.length(), 0); s.setSpan(new ForegroundColorSpan(ColorTemplate.getHoloBlue()), 25, s.length(), 0); return s; }
public static void setSpannableStr(TextView textView, String str, int startIndex, int endIndex, float proporation) { SpannableString spannableString = new SpannableString(str); ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#393939")); spannableString.setSpan(colorSpan, startIndex, endIndex, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); RelativeSizeSpan sizeSpan01 = new RelativeSizeSpan(proporation); spannableString.setSpan(sizeSpan01, startIndex, endIndex, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString); }
public static SpannableStringBuilder formatTimeRemaining(double routeDuration) { long seconds = (long) routeDuration; if (seconds < 0) { throw new IllegalArgumentException("Duration must be greater than zero."); } long days = TimeUnit.SECONDS.toDays(seconds); seconds -= TimeUnit.DAYS.toSeconds(days); long hours = TimeUnit.SECONDS.toHours(seconds); seconds -= TimeUnit.HOURS.toSeconds(hours); long minutes = TimeUnit.SECONDS.toMinutes(seconds); seconds -= TimeUnit.MINUTES.toSeconds(minutes); if (seconds >= 30) { minutes = minutes + 1; } List<SpanItem> spanItems = new ArrayList<>(); if (days != 0) { String dayFormat = days > 1 ? DAYS : DAY; spanItems.add(new SpanItem(new StyleSpan(Typeface.BOLD), String.valueOf(days))); spanItems.add(new SpanItem(new RelativeSizeSpan(1f), dayFormat)); } if (hours != 0) { spanItems.add(new SpanItem(new StyleSpan(Typeface.BOLD), String.valueOf(hours))); spanItems.add(new SpanItem(new RelativeSizeSpan(1f), HOUR)); } if (minutes != 0) { spanItems.add(new SpanItem(new StyleSpan(Typeface.BOLD), String.valueOf(minutes))); spanItems.add(new SpanItem(new RelativeSizeSpan(1f), MINUTE)); } if (days == 0 && hours == 0 && minutes == 0) { spanItems.add(new SpanItem(new StyleSpan(Typeface.BOLD), String.valueOf(1))); spanItems.add(new SpanItem(new RelativeSizeSpan(1f), MINUTE)); } return SpanUtils.combineSpans(spanItems); }
protected SpannableString emphasisAdded(String sequence) { SpannableString spannable = new SpannableString(sequence); spannable.setSpan(new RelativeSizeSpan(0.9f), 0, sequence.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); spannable.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 0, sequence.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); return spannable; }
protected void clearSpans(Editable editable) { clearCharacterSpanType(editable, TextAppearanceSpan.class); clearCharacterSpanType(editable, ForegroundColorSpan.class); clearCharacterSpanType(editable, BackgroundColorSpan.class); clearCharacterSpanType(editable, StrikethroughSpan.class); clearCharacterSpanType(editable, RelativeSizeSpan.class); clearCharacterSpanType(editable, StyleSpan.class); clearCharacterSpanType(editable, ColorUnderlineSpan.class); clearParagraphSpanType(editable, LineBackgroundSpan.class); clearParagraphSpanType(editable, LineHeightSpan.class); }
@Test public void relative_size_should_add_only_one_span() { spanBuilder.relativeSize(range, INTEGER_ARG) .apply(); verify((SpanEZ) spanBuilder, times(1)) .addSpan(isA(TargetRange.class), isA(RelativeSizeSpan.class)); }
public static void span(String text, String subText, Switch switchView) { SpannableString spanText = new SpannableString(text); spanText.setSpan(new ForegroundColorSpan(Color.GRAY), 0, text.length(), 0); spanText.setSpan(new StyleSpan(Typeface.BOLD), 0, text.length(), 0); SpannableString spanSubText = new SpannableString(subText); spanSubText.setSpan(new RelativeSizeSpan(0.75f), 0, subText.length(), 0); spanSubText.setSpan(new ForegroundColorSpan(Color.GRAY), 0, subText.length(), 0); switchView.setText(""); switchView.append(spanText); switchView.append("\n"); switchView.append(spanSubText); }
public static void span(String text, String subText, TextView textView) { SpannableString spanText = new SpannableString(text); spanText.setSpan(new ForegroundColorSpan(Color.GRAY), 0, text.length(), 0); spanText.setSpan(new StyleSpan(Typeface.BOLD), 0, text.length(), 0); SpannableString spanSubText = new SpannableString(subText); spanSubText.setSpan(new RelativeSizeSpan(0.75f), 0, subText.length(), 0); spanSubText.setSpan(new ForegroundColorSpan(Color.GRAY), 0, subText.length(), 0); textView.setText(""); textView.append(spanText); textView.append("\n"); textView.append(spanSubText); }
private void setSpannableText(String src) { //tvName.setText(src); String temp = src.replace("\n", " "); List<Integer> mList = new ArrayList<>(); int index = 0; int max = 0; if (temp.indexOf(" ", index) > 0) { while (temp.indexOf(" ", index) > 0 || index >= temp.length() || max < 50) { max++; index = temp.indexOf(" ", index); if (index <0 ) { break; } else { //Log.e(TAG, "空格位置: " + String.valueOf(index)); mList.add(index); index++; } } } SpannableString spannable = new SpannableString(src); spannable.setSpan(new RelativeSizeSpan(1.5f), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); if (mList.size() > 0) { for (int i = 0; i < mList.size(); i++) { int position = mList.get(i) + 1; //Log.e(TAG, "变更样式位置: " + String.valueOf(position)); spannable.setSpan(new RelativeSizeSpan(1.5f), position, position + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } } tvName.setText(spannable); }
@BindingAdapter("app:spanOffset") public static void setItemSpan(View v, int spanOffset) { final String itemText = ((TextView) v).getText().toString(); final SpannableString sString = new SpannableString(itemText); sString.setSpan(new RelativeSizeSpan(1.65f), itemText.length() - spanOffset, itemText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ((TextView) v).setText(sString); }
public MIP_TextStyle setRelativeSize(float size, int start, int end) { if (spannableString == null) { return this; } spannableString.setSpan(new RelativeSizeSpan(size), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 0.5f表示默认字体大小的一半 return this; }
@Override public void decorate(CalendarCellView cellView, Date date) { String dateString = Integer.toString(date.getDate()); SpannableString string = new SpannableString(dateString + "\ntitle"); string.setSpan(new RelativeSizeSpan(0.5f), 0, dateString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); cellView.getDayOfMonthTextView().setText(string); }
@Override public void handleTagNode(TagNode tagNode, SpannableStringBuilder builder, int start, int end) { builder.setSpan(new RelativeSizeSpan(this.size), start, end, 33); FontFamilySpan originalSpan = this.getFontFamilySpan(builder, start, end); FontFamilySpan boldSpan; if (originalSpan == null) { boldSpan = new FontFamilySpan(getSpanner().getDefaultFont()); } else { boldSpan = new FontFamilySpan(originalSpan.getFontFamily()); boldSpan.setItalic(originalSpan.isItalic()); } boldSpan.setBold(true); builder.setSpan(boldSpan, start, end, 33); appendNewLine(builder); }