微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android.text.Spanned的实例源码

项目:GitHub    文件MainActivity.java   
private void initMarqueeView3() {
    SimpleMF<Spanned> marqueeFactory3 = new SimpleMF<>(MainActivity.this);
    List<Spanned> datas3 = new ArrayList<>();
    datas3.add(Html.fromHtml("<font color=\"#ff0000\">《赋得古原草送别》</font>"));
    datas3.add(Html.fromHtml("<font color=\"#00ff00\">离离原上草,</font>一岁一枯荣。"));
    datas3.add(Html.fromHtml("野火烧不尽,<font color=\"#0000ff\">春风吹又生。</font>"));
    datas3.add(Html.fromHtml("<font color=\"#333333\">远芳侵古道,晴翠接荒城。</font>"));
    datas3.add(Html.fromHtml("<font color=\"#ffffff\">又送王孙去,萋萋满别情。</font>"));
    marqueeFactory3.setData(datas3);
    marqueeView3.setMarqueeFactory(marqueeFactory3);
    marqueeView3.startFlipping();
    marqueeFactory3.setonItemClickListener(new MarqueeFactory.OnItemClickListener<TextView,Spanned>() {
        @Override
        public void onItemClickListener(MarqueeFactory.ViewHolder<TextView,Spanned> holder) {
            Toast.makeText(MainActivity.this,holder.data,Toast.LENGTH_SHORT).show();
        }
    });
}
项目:AndroidUtilCode-master    文件SpanUtils.java   
public void drawLeadingMargin(Canvas c,Paint p,int x,int dir,int top,int baseline,int bottom,CharSequence text,int start,int end,boolean first,Layout layout) {
    int st = ((Spanned) text).getSpanStart(this);
    int itop = layout.getLinetop(layout.getLineForOffset(st));

    if (dir < 0)
        x -= mBitmap.getWidth();

    int delta = totalHeight - mBitmap.getHeight();

    if (delta > 0) {
        if (mVerticalAlignment == ALIGN_TOP) {
            c.drawBitmap(mBitmap,x,itop,p);
        } else if (mVerticalAlignment == ALIGN_CENTER) {
            c.drawBitmap(mBitmap,itop + delta / 2,p);
        } else {
            c.drawBitmap(mBitmap,itop + delta,p);
        }
    } else {
        c.drawBitmap(mBitmap,p);
    }
}
项目:GitHub    文件SpanUtils.java   
public void drawLeadingMargin(Canvas c,p);
    }
}
项目:chromium-for-android-56-debug-video    文件InfoBarLayout.java   
/**
 * Prepares text to be displayed as the infobar's main message,including setting up a
 * clickable link if the infobar requires it.
 */
private CharSequence prepareMainMessageString() {
    SpannableStringBuilder fullString = new SpannableStringBuilder();

    if (mMessageMainText != null) fullString.append(mMessageMainText);

    // Concatenate the text to display for the link and make it clickable.
    if (!TextUtils.isEmpty(mMessageLinkText)) {
        if (fullString.length() > 0) fullString.append(" ");
        int spanStart = fullString.length();

        fullString.append(mMessageLinkText);
        fullString.setSpan(new ClickableSpan() {
            @Override
            public void onClick(View view) {
                mInfoBarView.onLinkClicked();
            }
        },spanStart,fullString.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    }

    return fullString;
}
项目:RNLearn_Project1    文件ReactTextTest.java   
@Test
public void testTextdecorationLineLineThroughApplied() {
  UIManagerModule uiManager = getUIManagerModule();

  ReactRootView rootView = createText(
      uiManager,JavaOnlyMap.of(ViewProps.TEXT_decoration_LINE,"line-through"),JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT,"test text"));

  TextView textView = (TextView) rootView.getChildAt(0);
  Spanned text = (Spanned) textView.getText();
  Underlinespan[] underlinespans =
      text.getSpans(0,text.length(),Underlinespan.class);
  StrikethroughSpan strikeThroughSpan =
      getSingleSpan(textView,StrikethroughSpan.class);
  assertthat(underlinespans).hasSize(0);
  assertthat(strikeThroughSpan instanceof StrikethroughSpan).isTrue();
}
项目:Tusky    文件BaseActivity.java   
protected void createMastodonApi() {
    mastodonApidispatcher = new dispatcher();

    Gson gson = new GsonBuilder()
            .registerTypeAdapter(Spanned.class,new SpannedTypeAdapter())
            .create();

    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);

    OkHttpClient.Builder okBuilder =
            OkHttpUtils.getCompatibleClientBuilder(preferences)
                    .addInterceptor(new AuthInterceptor(this))
                    .dispatcher(mastodonApidispatcher);

    if (BuildConfig.DEBUG) {
        okBuilder.addInterceptor(
                new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BASIC));
    }

    Retrofit retrofit = new Retrofit.Builder().baseUrl(getBaseUrl())
            .client(okBuilder.build())
            .addConverterFactory(GsonConverterFactory.create(gson))
            .build();

    mastodonApi = retrofit.create(MastodonApi.class);
}
项目:BookReader-master    文件BookContentTextView.java   
public void setText(String text) {
    int startIndex = 0;
    while (true) {

        int start = text.indexOf("《");
        int end = text.indexOf("》");
        if (start < 0 || end < 0) {
            append(text.substring(startIndex));
            break;
        }

        append(text.substring(startIndex,start));

        SpannableString spanableInfo = new SpannableString(text.substring(start,end + 1));
        spanableInfo.setSpan(new Clickable(spanableInfo.toString()),end + 1 - start,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        append(spanableInfo);
        //setMovementMethod()该方法必须调用,否则点击事件不响应
        setMovementMethod(LinkMovementMethod.getInstance());
        text = text.substring(end + 1);

        LogUtils.e(spanableInfo.toString());
    }
}
项目:mvvm-template    文件TableHandler.java   
private void readNode(Object node,Table table) {
    if (node instanceof TagNode) {
        TagNode tagNode = (TagNode) node;
        if (tagNode.getName().equals("td") || tagNode.getName().equals("th")) {
            Spanned result = this.getSpanner().fromTagNode(tagNode);
            table.addCell(result);
            return;
        }
        if (tagNode.getName().equals("tr")) {
            table.addRow();
        }
        for (Object child : tagNode.getChildTags()) {
            readNode(child,table);
        }
    }

}
项目:qmui    文件QMUILinkify.java   
private static final void applyLink(String url,Spannable text,final ColorStateList linkColor,final ColorStateList bgColor,QMUIOnSpanClickListener l) {
    text.setSpan(new StyleableuRLSpan(url,l) {

        @Override
        public void updateDrawState(TextPaint ds) {
            if (linkColor != null) {
                int normalLinkColor = linkColor.getColorForState(new int[]{android.R.attr.state_enabled,-android.R.attr.state_pressed},Color.TRANSPARENT);
                int pressedLinkColor = linkColor.getColorForState(new int[]{android.R.attr.state_pressed},normalLinkColor);
                ds.linkColor = mpressed ? pressedLinkColor : normalLinkColor;
            }
            if (bgColor != null) {
                int normalBgColor = bgColor.getColorForState(new int[]{android.R.attr.state_enabled,Color.TRANSPARENT);
                int pressedBgColor = bgColor.getColorForState(new int[]{android.R.attr.state_pressed},normalBgColor);
                ds.bgColor = mpressed ? pressedBgColor : normalBgColor;
            }
            super.updateDrawState(ds);
            ds.setUnderlineText(false);
        }

    },start,end,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
项目:OSchina_resources_android    文件RichEditText.java   
public static Spannable matchMention(Spannable spannable) {
    String text = spannable.toString();

    Pattern pattern = Pattern.compile(MATCH_MENTION);
    Matcher matcher = pattern.matcher(text);

    while (matcher.find()) {
        String str = matcher.group();
        int matcherStart = matcher.start();
        int matcherEnd = matcher.end();
        spannable.setSpan(new RichEditText.TagSpan(str),matcherStart,matcherEnd,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        log("matchMention:" + str + " " + matcherStart + " " + matcherEnd);
    }

    return spannable;
}
项目:financisto1-holo    文件AmountInput.java   
@Override
public CharSequence filter(CharSequence source,Spanned dest,int dstart,int dend) {
    if (end - start == 1) {
        char c = source.charat(0);
        if (c == '.' || c == ',') {
            onDotOrComma();
            return "";
        }
              if (isIncomeExpenseEnabled()) {
                  if (c == '-') {
                      setExpense();
                      return "";
                  }
                  if (c == '+') {
                      setIncome();
                      return "";
                  }
              }
    }
    return super.filter(source,dest,dstart,dend);
}
项目:Tusky    文件ComposeActivity.java   
private void onUploadSuccess(final QueuedMedia item,Attachment media) {
    item.id = media.id;
    item.preview.setProgress(-1);
    item.readyStage = QueuedMedia.ReadyStage.UPLOADED;

    /* Add the upload URL to the text field. Also,keep a reference to the span so if the user
     * chooses to remove the media,the URL is also automatically removed. */
    item.uploadUrl = new URLSpan(media.textUrl);
    int end = 1 + media.textUrl.length();
    SpannableStringBuilder builder = new SpannableStringBuilder();
    builder.append(' ');
    builder.append(media.textUrl);
    builder.setSpan(item.uploadUrl,1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    int cursorStart = textEditor.getSelectionStart();
    int cursorEnd = textEditor.getSelectionEnd();
    textEditor.append(builder);
    textEditor.setSelection(cursorStart,cursorEnd);

    waitForMediaLatch.countDown();
}
项目:stynico    文件JumpingBeans.java   
@SuppressWarnings("Range")          // Lint bug: the if makes sure waveCharDelay >= 0
private JumpingBeansspan[] buildWavingSpans(SpannableStringBuilder sbb) {
    JumpingBeansspan[] spans;
    if (waveCharDelay == DEFAULT_WAVE_CHAR_DELAY) {
        waveCharDelay = loopDuration / (3 * (endPos - startPos));
    }

    spans = new JumpingBeansspan[endPos - startPos];
    for (int pos = startPos; pos < endPos; pos++) {
        JumpingBeansspan jumpingBean =
                new JumpingBeansspan(textView,loopDuration,pos - startPos,waveCharDelay,animRange);
        sbb.setSpan(jumpingBean,pos,pos + 1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        spans[pos - startPos] = jumpingBean;
    }
    return spans;
}
项目:stynico    文件EmojiFilter.java   
@Override
    public CharSequence filter(CharSequence source,int dend) {
        // check black-list set
        for (int i = 0; i < source.length(); i++) {
          //  LogUtil.e(Integer.toHexString(source.charat(i)));
        }
     //   LogUtil.e(source.toString() + " length: " + source.toString().length() +
         // " ;bytes length: " + source.toString().getBytes().length);
//        Iterator<String> iterator = filterSet.iterator();
//        while (iterator.hasNext()) {
//            String filter = iterator.next();
//            if (filter.equals(source.toString())) {
//                LogUtil.e(filter + " length: " + filter.length() +
//                        " ;bytes length: " + filter.getBytes().length);
//                for (int i= 0; i < source.length(); i++){
//                    LogUtil.e(Integer.toHexString(source.charat(i)));
//                }
//                return "";
//            }
//        }
        if (filterSet.contains(source.toString())) {
            return "";
        }
        return source;
    }
项目:CalcMate    文件CalculatorEditText.java   
private Spanned formatText(String input) {
    BaseModule bm = mdisplay.mLogic.mBaseModule;
    if(CalculatorSettings.digitGrouping(getContext())) {
        // Add grouping,and then split on the selection handle
        // which is saved as a unique char
        String grouped = bm.groupSentence(input,selectionHandle);
        if(grouped.contains(String.valueOf(BaseModule.SELECTION_HANDLE))) {
            String[] temp = grouped.split(String.valueOf(BaseModule.SELECTION_HANDLE));
            selectionHandle = temp[0].length();
            input = "";
            for(String s : temp) {
                input += s;
            }
        }
        else {
            input = grouped;
            selectionHandle = input.length();
        }
    }
    return Html.fromHtml(mEquationFormatter.insertSupscripts(input));
}
项目:DailyStudy    文件SpannableStringActivity.java   
@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,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;
    }
}
项目:Markwon    文件SpannableBuilder.java   
@NonNull
public CharSequence removeFromEnd(int start) {

    // this method is not intended to be used by clients
    // it's a workaround to support tables

    final int end = length();

    // as we do not expose builder and do no apply spans to it,we are safe to NOT to convert to String
    final SpannableStringBuilderImpl impl = new SpannableStringBuilderImpl(builder.subSequence(start,end));

    final Iterator<Span> iterator = spans.iterator();

    Span span;

    while (iterator.hasNext() && ((span = iterator.next())) != null) {
        if (span.start >= start && span.end <= end) {
            impl.setSpan(span.what,span.start - start,span.end - start,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            iterator.remove();
        }
    }

    builder.replace(start,"");

    return impl;
}
项目:androidtools    文件StringUtils.java   
/**
 * Input frame character length limit
 *
 * @param mEdit     EditText
 * @param maxLength maxLength
 */
public void setEditable(EditText mEdit,int maxLength) {
    if (mEdit.getText().length() < maxLength) {
        mEdit.setFilters(new InputFilter[]{new InputFilter.LengthFilter(maxLength) {
        }});
        mEdit.setCursorVisible(true);
        mEdit.setFocusableInTouchMode(true);
        mEdit.requestFocus();
    } else {
        mEdit.setFilters(new InputFilter[]{new InputFilter() {
            @Override
            public CharSequence filter(CharSequence source,int dend) {
                return source.length() < 1 ? dest.subSequence(dstart,dend) : "";
            }
        }});
        mEdit.setCursorVisible(false);
        mEdit.setFocusableInTouchMode(false);
        mEdit.clearFocus();
    }
}
项目:Viajes    文件Utils.java   
public static Spanned getSpannedString(String str,String sub) {
    String lowerCase = str.toLowerCase();
    String stag = "<font color='#2196F3'>",etag = "</font>";

    int atIndx = 0;
    int ind = -1;
    int curInc = 0;
    while ((ind = lowerCase.indexOf(sub,atIndx)) != -1) {
        Log.d("Utils","getSpannableString: =" + ind);
        str = str.substring(0,ind + curInc)
                + stag
                + str.substring(ind + curInc,ind + curInc + sub.length())
                + etag
                + str.substring(ind + curInc + sub.length(),str.length());

        atIndx = ind + sub.length();
        curInc += stag.length() + etag.length();
    }

    return Html.fromHtml(str);
}
项目:SciChart.Android.Examples    文件CustomTooltipsWithModifiersFragment.java   
@Override
protected void internalUpdate(XySeriesInfo seriesInfo) {
    final SpannableStringBuilder sb = new SpannableStringBuilder();
    sb.append(modifierName).append(StringUtil.NEW_LINE);

    if (seriesInfo.seriesName != null) {
        sb.append(seriesInfo.seriesName);
        sb.setSpan(new ForegroundColorSpan(ColorUtil.Black),sb.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        sb.append(StringUtil.NEW_LINE);
    }

    sb.append("X: ").append(seriesInfo.getFormattedXValue());
    sb.append(" Y: ").append(seriesInfo.getFormattedYValue());

    setText(sb);

    // stroke 0xffff4500
    setSeriesColor(0xffe2460c);
}
项目:SimpleRSSReader    文件RoundedCornersBackgroundSpan.java   
/**
 * Create a spanned string that contains RoundedCornersBackgroundSpan.
 *
 * @return spanned string
 */
public Spannable build() {
    if (mTextParts.isEmpty()) {
        throw new IllegalArgumentException("You must specify at least one text part.");
    }
    boolean first = true;
    final SpannableStringBuilder builder = new SpannableStringBuilder();
    mSeparatorWidth = 2 * mPadding + mPartsspacing;
    for (final Pair<CharSequence,BackgroundHolder> stringPart : mTextParts) {
        if (first) {
            first = false;
        } else {
            final int start = builder.length();
            builder.append(" ");
            final SpacingSpan spacingSpan = SpacingSpan.newInstance(mSeparatorWidth);
            builder.setSpan(spacingSpan,builder.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
        stringPart.second.setStart(builder.length());
        builder.append(stringPart.first);
        stringPart.second.setEnd(builder.length());
    }
    final RoundedCornersBackgroundSpan span = new RoundedCornersBackgroundSpan(this);
    builder.setSpan(span,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return builder;
}
项目:PeSanKita-android    文件RecipientsEditor.java   
/**
 * Returns <code>text</code>,modified,if necessary,to ensure that
 * it ends with a token terminator (for example a space or comma).
 * It is a method from the MultiAutoCompleteTextView.Tokenizer interface.
 */
public CharSequence terminatetoken(CharSequence text) {
    int i = text.length();

    while (i > 0 && text.charat(i - 1) == ' ') {
        i--;
    }

    char c;
    if (i > 0 && ((c = text.charat(i - 1)) == ',' || c == ';')) {
        return text;
    } else {
        // Use the same delimiter the user just typed.
        // This lets them have a mixture of commas and semicolons in their list.
        String separator = mLastSeparator + " ";
        if (text instanceof Spanned) {
            SpannableString sp = new SpannableString(text + separator);
            TextUtils.copySpansFrom((Spanned) text,Object.class,sp,0);
            return sp;
        } else {
            return text + separator;
        }
    }
}
项目:OSchina_resources_android    文件RichEditText.java   
/**
 * 中横线,即删除线
 *
 * @param isMidLine isMidLine
 */
void setMidLine(boolean isMidLine,int index) {
    if (index >= 0 && index < mSections.size()) {
        mSections.get(index).setMidLine(isMidLine);
    }
    Editable edit = getEditableText();
    int star = getSectionStart();
    int end = getSectionEnd();
    if (isMidLine) {
        edit.setSpan(new StrikethroughSpan(),star,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    } else {
        StrikethroughSpan[] styleSpans = edit.getSpans(star,StrikethroughSpan.class);
        for (StrikethroughSpan span : styleSpans) {
            edit.removeSpan(span);
        }
    }
}
项目:anitrend-app    文件DialogManager.java   
/**
 * Will not auto dismiss
 */
public void createDialogMessage(String header,Spanned body,String pos,String neg,String neu,MaterialDialog.SingleButtonCallback buttonCallback) {
    // Build the alert dialog
    new MaterialDialog.Builder(mContext)
            .onAny(buttonCallback)
            .positiveText(pos)
            .negativeText(neg)
            .neutralText(neu)
            .autodismiss(false)
            .typeface(Typeface.SANS_SERIF,Typeface.SANS_SERIF)
            .iconRes(app_prefs.isLightTheme()?R.drawable.ic_new_releases_black_24dp:R.drawable.ic_new_releases_white_24dp)
            .buttonRippleColorRes(R.color.colorAccent)
            .positiveColorRes(R.color.colorStateBlue)
            .negativeColorRes(R.color.colorStateOrange)
            .theme(app_prefs.isLightTheme()?Theme.LIGHT:Theme.DARK)
            .title(header)
            .content(body)
            .show();
}
项目:Nird2    文件UiUtils.java   
public static SpannableStringBuilder getTeaser(Context ctx,Spanned body) {
    if (body.length() < TEASER_LENGTH)
        throw new IllegalArgumentException(
                "String is shorter than TEASER_LENGTH");

    SpannableStringBuilder builder =
            new SpannableStringBuilder(body.subSequence(0,TEASER_LENGTH));
    String ellipsis = ctx.getString(R.string.ellipsis);
    builder.append(ellipsis).append(" ");

    Spannable readMore = new SpannableString(
            ctx.getString(R.string.read_more) + ellipsis);
    ForegroundColorSpan fg = new ForegroundColorSpan(
            ContextCompat.getColor(ctx,R.color.briar_text_link));
    readMore.setSpan(fg,readMore.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    builder.append(readMore);

    return builder;
}
项目:HeroVideo-master    文件HomeRecommendedSection.java   
@SuppressLint("SetTextI18n")
    @Override
    public void onBindHeaderViewHolder(RecyclerView.ViewHolder holder)
    {

        HeaderViewHolder headerViewHolder = (HeaderViewHolder) holder;
        setTypeIcon(headerViewHolder);
        headerViewHolder.mTypeTv.setText(title);
//        headerViewHolder.mTypeRankBtn.setonClickListener(v -> mContext.startActivity(
//                new Intent(mContext,OriginalRankActivity.class)));

        switch (type)
        {
            case TYPE_RECOMMENDED:
                headerViewHolder.mTypeMore.setVisibility(View.GONE);
                headerViewHolder.mTypeRankBtn.setVisibility(View.VISIBLE);
                headerViewHolder.mAllLiveNum.setVisibility(View.GONE);
                break;
            case TYPE_LIVE:
                headerViewHolder.mTypeRankBtn.setVisibility(View.GONE);
                headerViewHolder.mTypeMore.setVisibility(View.VISIBLE);
                headerViewHolder.mAllLiveNum.setVisibility(View.VISIBLE);
                SpannableStringBuilder stringBuilder = new SpannableStringBuilder("当前" + liveCount + "个直播");
                ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(
                        mContext.getResources().getColor(R.color.pink));
                stringBuilder.setSpan(foregroundColorSpan,2,stringBuilder.length() - 3,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                headerViewHolder.mAllLiveNum.setText(stringBuilder);
                break;
            default:
                headerViewHolder.mTypeRankBtn.setVisibility(View.GONE);
                headerViewHolder.mTypeMore.setVisibility(View.VISIBLE);
                headerViewHolder.mAllLiveNum.setVisibility(View.GONE);
                break;
        }
    }
项目:revolution-irc    文件ChannelSearchDialog.java   
@Override
public void bind(Pair<ServerConnectionInfo,String> item) {
    String name = item.first.getName();
    String channel = item.second;
    int iof = channel.indexOf(mHighlightQuery);
    SpannableString str = new SpannableString(channel + "  " + name);
    str.setSpan(new ForegroundColorSpan(mHighlightTextColor),iof,iof + mHighlightQuery.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    str.setSpan(new ForegroundColorSpan(mSecondaryTextColor),channel.length() + 2,channel.length() + 2 + name.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    mText.setText(str);
}
项目:BilibiliClient    文件HomeRecommendedSection.java   
@Override
public void onBindHeaderViewHolder(RecyclerView.ViewHolder holder) {
    HeaderViewHolder viewHolder = (HeaderViewHolder) holder;
    setTypeIcon(viewHolder);
    viewHolder.mTypeTv.setText(title);
    viewHolder.mTypeRankBtn.setonClickListener(v -> {
        mContext.startActivity(new Intent(mContext,OriginalRankActivity.class));
    });
    switch(type){
        case TYPE_RECOMMENDED:
            viewHolder.mTypeMore.setVisibility(View.GONE);
            viewHolder.mTypeRankBtn.setVisibility(View.VISIBLE);
            viewHolder.mAllLiveNum.setVisibility(View.GONE);
            break;
        case TYPE_LIVE:
            viewHolder.mTypeMore.setVisibility(View.VISIBLE);
            viewHolder.mTypeRankBtn.setVisibility(View.GONE);
            viewHolder.mAllLiveNum.setVisibility(View.VISIBLE);
            SpannableStringBuilder builder = new SpannableStringBuilder("当前" + liveCount + "个直播");
            ForegroundColorSpan colorSpan = new ForegroundColorSpan(mContext.getResources().getColor(R.color.pink_text_color));
            builder.setSpan(colorSpan,builder.length() - 3,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            viewHolder.mAllLiveNum.setText(builder);
            break;
        default :
            viewHolder.mTypeMore.setVisibility(View.VISIBLE);
            viewHolder.mTypeRankBtn.setVisibility(View.GONE);
            viewHolder.mAllLiveNum.setVisibility(View.GONE);
            break;
    }
}
项目:RNLearn_Project1    文件ReactEditText.java   
@Override
protected boolean verifyDrawable(Drawable drawable) {
  if (mContainsImages && getText() instanceof Spanned) {
    Spanned text = (Spanned) getText();
    TextInlineImageSpan[] spans = text.getSpans(0,TextInlineImageSpan.class);
    for (TextInlineImageSpan span : spans) {
      if (span.getDrawable() == drawable) {
        return true;
      }
    }
  }
  return super.verifyDrawable(drawable);
}
项目:RLibrary    文件SpannableStringUtils.java   
private Builder(@NonNull CharSequence text) {
    this.text = text;
    flag = Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
    foregroundColor = defaultValue;
    backgroundColor = defaultValue;
    quoteColor = defaultValue;
    textSize = -1;
    proportion = -1;
    xProportion = -1;
    mBuilder = new SpannableStringBuilder();
}
项目:Examesgithub    文件MainActivity.java   
@SuppressWarnings("deprecation")
public static Spanned fromHtml(String source) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        return Html.fromHtml(source,Html.FROM_HTML_MODE_LEGACY);
    } else {
        return Html.fromHtml(source);
    }
}
项目:MVPArmsTest1    文件UiUtils.java   
/**
 * 设置hint大小
 *
 * @param size
 * @param v
 * @param res
 */
public static void setViewHintSize(Context context,int size,TextView v,int res) {
    SpannableString ss = new SpannableString(getResources(context).getString(
            res));
    // 新建一个属性对象,设置文字的大小
    AbsoluteSizeSpan ass = new AbsoluteSizeSpan(size,true);
    // 附加属性到文本  
    ss.setSpan(ass,ss.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    // 设置hint  
    v.setHint(new SpannedString(ss)); // 一定要进行转换,否则属性会消失
}
项目:hsv-alpha-color-picker    文件HexEdit.java   
public CharSequence filter(CharSequence source,int dend) {
    // If 8 digits have been pasted,replacing all source,trim alpha digits.
    // Otherwise standard LengthFilter behavior.
    final int srcLength = end - start;
    final int dstSelLength = dend - dstart;
    if (srcLength == PASTED_LEN && dstSelLength == dest.length()) {
        // discard alpha digits:
        return source.subSequence(PASTED_LEN - MAX_LENGTH,PASTED_LEN);
    }
    else {
        return sixDigitFilter.filter(source,dend);
    }
}
项目:MobileAppForPatient    文件InputFilterMinMax.java   
@Override
public CharSequence filter(CharSequence source,int dend) {
    try {
        int input = Integer.parseInt(dest.toString() + source.toString());
        if (isInRange(min,max,input)) {
            return null;
        }
    }
    catch (NumberFormatException nfe) { }

    return "";
}
项目:GitHub    文件Spanny.java   
/**
 * Sets span objects to the text. This is more efficient than creating a new instance of Spanny
 * or SpannableStringBuilder.
 * @return {@code SpannableString}.
 */
public static SpannableString spanText(CharSequence text,Object... spans) {
    SpannableString spannableString = new SpannableString(text);
    for (Object span : spans) {
        spannableString.setSpan(span,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
    return spannableString;
}
项目:MKAPP    文件ActivitySettings.java   
private void markPro(Preference pref,String sku) {
    if (sku == null || !IAB.isPurchased(sku,this)) {
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        boolean dark = prefs.getBoolean("dark_theme",false);
        SpannableStringBuilder ssb = new SpannableStringBuilder("  " + pref.getTitle());
        ssb.setSpan(new ImageSpan(this,dark ? R.drawable.ic_shopping_cart_white_24dp : R.drawable.ic_shopping_cart_black_24dp),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        pref.setTitle(ssb);
    }
}
项目:GitHub    文件RecyclerViewAdapterHelper.java   
/**
 * 处理关键字高亮
 * 如果需要检索算法库,请联系我
 *
 * @param originStr       被处理字符串
 * @param keyWord         关键字
 * @param hightLightColor 高亮颜色
 * @return CharSequence
 */
public static CharSequence handleKeyWordHighLight
(String originStr,String keyWord,@ColorInt int hightLightColor) {

    SpannableString ss = new SpannableString(originStr);
    Pattern p = Pattern.compile(keyWord);
    Matcher m = p.matcher(ss);

    while (m.find()) {
        ss.setSpan(new ForegroundColorSpan(hightLightColor),m.start(),m.end(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    }

    return ss;
}
项目:RNLearn_Project1    文件ReactTextView.java   
@Override
public void onStartTemporaryDetach() {
  super.onStartTemporaryDetach();
  if (mContainsImages && getText() instanceof Spanned) {
    Spanned text = (Spanned) getText();
    TextInlineImageSpan[] spans = text.getSpans(0,TextInlineImageSpan.class);
    for (TextInlineImageSpan span : spans) {
      span.onStartTemporaryDetach();
    }
  }
}
项目:GitHub    文件Utils.java   
@SuppressWarnings("deprecation")
public static Spanned fromHtmlCompat(String text) {
    if (hasNougat()) {
        return Html.fromHtml(text,Html.FROM_HTML_MODE_LEGACY);
    } else {
        return Html.fromHtml(text);
    }
}
项目:HeadlineNews    文件SnackbarUtils.java   
/**
 * 显示snackbar
 */
public void show() {
    final View view = parent.get();
    if (view == null) return;
    if (messageColor != DEFAULT_COLOR) {
        SpannableString spannableString = new SpannableString(message);
        ForegroundColorSpan colorSpan = new ForegroundColorSpan(messageColor);
        spannableString.setSpan(colorSpan,spannableString.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        snackbarWeakReference = new WeakReference<>(Snackbar.make(view,spannableString,duration));
    } else {
        snackbarWeakReference = new WeakReference<>(Snackbar.make(view,message,duration));
    }
    final Snackbar snackbar = snackbarWeakReference.get();
    final View snackbarView = snackbar.getView();
    if (bgResource != -1) {
        snackbarView.setBackgroundResource(bgResource);
    } else if (bgColor != DEFAULT_COLOR) {
        snackbarView.setBackgroundColor(bgColor);
    }
    if (bottomMargin != 0) {
        ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) snackbarView.getLayoutParams();
        params.bottomMargin = bottomMargin;
    }
    if (actionText.length() > 0 && actionListener != null) {
        if (actionTextColor != DEFAULT_COLOR) {
            snackbar.setActionTextColor(actionTextColor);
        }
        snackbar.setAction(actionText,actionListener);
    }
    snackbar.show();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。