android.text.SpannableString的实例源码

项目:IslamicLibraryAndroid    文件:SearchResult.java   
public CharSequence getformatedSearchSnippet() {
    //TODO implement improved snippet function
    String CleanedSearchString = " " + ArabicUtilities.cleanTextForSearchingWthStingBuilder(searchString) + " ";
    StringBuilder cleanedUnformattedPage = new StringBuilder(ArabicUtilities.cleanTextForSearchingWthStingBuilder(unformatedPage));
    int firstMatchStart = cleanedUnformattedPage.indexOf(CleanedSearchString);
    cleanedUnformattedPage.delete(0,Math.max(firstMatchStart - 100,0));
    cleanedUnformattedPage.delete(
            Math.min(firstMatchStart + CleanedSearchString.length() + 100,cleanedUnformattedPage.length()),cleanedUnformattedPage.length());
    cleanedUnformattedPage.insert(0,"...");
    cleanedUnformattedPage.append("...");

    Spannable snippet = SpannableString.
            valueOf(cleanedUnformattedPage.toString());
    int index = TextUtils.indexOf(snippet,CleanedSearchString);
    while (index >= 0) {

        snippet.setSpan(new BackgroundColorSpan(0xFF8B008B),index,index
                + CleanedSearchString.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        index = TextUtils.indexOf(snippet,CleanedSearchString,index + CleanedSearchString.length());
    }

    return snippet;
}
项目: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;
}
项目:AgentWeb    文件:AgentWebUtils.java   
static void show(View parent,CharSequence text,int duration,@ColorInt int textColor,@ColorInt int bgColor,CharSequence actionText,@ColorInt int actionTextColor,View.OnClickListener listener) {
    SpannableString spannableString = new SpannableString(text);
    ForegroundColorSpan colorSpan = new ForegroundColorSpan(textColor);
    spannableString.setSpan(colorSpan,spannableString.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    snackbarWeakReference = new WeakReference<>(Snackbar.make(parent,spannableString,duration));
    Snackbar snackbar = snackbarWeakReference.get();
    View view = snackbar.getView();
    view.setBackgroundColor(bgColor);
    if (actionText != null && actionText.length() > 0 && listener != null) {
        snackbar.setActionTextColor(actionTextColor);
        snackbar.setAction(actionText,listener);
    }
    snackbar.show();

}
项目:GitHub    文件:BookMarkAdapter.java   
@Override
public void convert(EasyLVHolder holder,int position,BookMark item) {
    TextView tv = holder.getView(R.id.tvMarkItem);

    SpannableString spanText = new SpannableString((position + 1) + ". " + item.title + ": ");
    spanText.setSpan(new ForegroundColorSpan(ContextCompat.getColor(mContext,R.color.light_coffee)),spanText.length(),Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

    tv.setText(spanText);

    if (item.desc != null) {
        tv.append(item.desc
                .replaceAll(" ","")
                .replaceAll(" ","")
                .replaceAll("\n",""));
    }

}
项目:PocketGopher    文件:UnknownPage.java   
public void render(final TextView textView,final Context context,String line)
{
    final Handler handler = new Handler(Looper.getMainLooper());
    final SpannableString text = new SpannableString("  " + line + "\n");

    handler.post(new Runnable()
    {
        @Override
        public void run()
        {
            //set the image tag behind (left of) the text
            text.setSpan(new ImageSpan(context,IMAGE_TAG),1,0);
            textView.append(text);
        }
    });
}
项目:revolution-irc    文件:UserAutoRunCommandHelper.java   
@Override
public void showDialog(Activity activity) {
    super.showDialog(activity);
    dismissDialog(activity);
    ThemedAlertDialog.Builder dialog = new ThemedAlertDialog.Builder(activity);
    dialog.setTitle(R.string.connection_error_command_title);

    StringBuilder commands = new StringBuilder();
    for (String cmd : mCommands) {
        commands.append('/');
        commands.append(cmd);
        commands.append('\n');
    }
    SpannableString commandsSeq = new SpannableString(commands);
    commandsSeq.setSpan(new TypefaceSpan("monospace"),commandsSeq.length(),SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
    dialog.setMessage(SpannableStringHelper.format(activity.getResources().getQuantityText(
            R.plurals.connection_error_command_dialog_content,mCommands.size()),mNetworkName,commandsSeq));
    dialog.setPositiveButton(R.string.action_ok,null);
    dialog.setOnDismissListener((DialogInterface di) -> {
        dismiss();
    });
    mDialog = dialog.show();
}
项目:Tusky    文件:MentionTokenizer.java   
@Override
public CharSequence terminateToken(CharSequence text) {
    int i = text.length();
    while (i > 0 && text.charAt(i - 1) == ' ') {
        i--;
    }
    if (i > 0 && text.charAt(i - 1) == ' ') {
        return text;
    } else if (text instanceof Spanned) {
        SpannableString s = new SpannableString(text + " ");
        TextUtils.copySpansFrom((Spanned) text,text.length(),Object.class,s,0);
        return s;
    } else {
        return text + " ";
    }
}
项目:AndroidUtilCode-master    文件:SnackbarUtils.java   
/**
 * 设置snackbar文字和背景颜色
 *
 * @param parent          父视图(CoordinatorLayout或者DecorView)
 * @param text            文本
 * @param duration        显示时长
 * @param textColor       文本颜色
 * @param bgColor         背景色
 * @param actionText      事件文本
 * @param actionTextColor 事件文本颜色
 * @param listener        监听器
 */
private static void show(View parent,listener);
    }
    snackbar.show();
}
项目:Quizca-UI-Concept    文件:MainActivity.java   
public SpannableString getDesignationText()
{
    String text = txtDesignation.getText().toString();

    SpannableString s = new SpannableString(text);

    s.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.colorAccent)),text.indexOf("@"),0);

    /*
    s.setSpan(new RelativeSizeSpan(1.2f),text.indexOf("A"),0);
    s.setSpan(new StyleSpan(Typeface.NORMAL),0);
    s.setSpan(new ForegroundColorSpan(Color.BLACK),0);
    */

    return s;
}
项目:SimpleDialogFragments    文件:MainActivity.java   
private void newColor(int color){
    this.color = color;

    // Sets action bar colors
    if (getSupportActionBar() == null) return;

    getSupportActionBar().setBackgroundDrawable(new ColorDrawable(0xFF000000 | color));

    boolean dark = Color.red(color) * 0.299 + Color.green(color) * 0.587 + Color.blue(color) * 0.114 < 180;
    SpannableString s = new SpannableString(getSupportActionBar().getTitle());
    s.setSpan(new ForegroundColorSpan(dark ? Color.WHITE : Color.BLACK),s.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    getSupportActionBar().setTitle(s);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        float[] hsv = new float[3];
        Color.colorToHSV(color,hsv);
        hsv[2] *= 0.75;
        getWindow().setStatusBarColor(Color.HSVToColor(hsv));
    }
}
项目:ultrasonic    文件:SelectPlaylistActivity.java   
private void displayPlaylistInfo(final Playlist playlist)
{
    final TextView textView = new TextView(this);
    textView.setPadding(5,5,5);

    final Spannable message = new SpannableString("Owner: " + playlist.getOwner() + "\nComments: " +
            ((playlist.getComment() == null) ? "" : playlist.getComment()) +
            "\nSong Count: " + playlist.getSongCount() +
            ((playlist.getPublic() == null) ? "" : ("\nPublic: " + playlist.getPublic()) + ((playlist.getCreated() == null) ? "" : ("\nCreation Date: " + playlist.getCreated().replace('T',' ')))));

    Linkify.addLinks(message,Linkify.WEB_URLS);
    textView.setText(message);
    textView.setMovementMethod(LinkMovementMethod.getInstance());

    new AlertDialog.Builder(this).setTitle(playlist.getName()).setCancelable(true).setIcon(android.R.drawable.ic_dialog_info).setView(textView).show();
}
项目:ChenYan    文件:Main2Activity.java   
private void spanTest() {
        SpannableString spannableString = new SpannableString("欢迎光临我的博客");
//        字体颜色span
        ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.BLUE);
//        背景颜色span
        BackgroundColorSpan backgroundColorSpan = new BackgroundColorSpan(Color.RED);

//        1,3其实是两个位置,末尾不包括
//        Flag 为 span如果新增了文字 的前面不包括样式,后面包括样式
        spannableString.setSpan(colorSpan,3,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
        spannableString.setSpan(backgroundColorSpan,7,Spanned.SPAN_INCLUSIVE_EXCLUSIVE);

        SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder();
        spannableStringBuilder.append(spannableString);

        editText.setText(spannableString);

    }
项目:TextReader    文件: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());
    }
}
项目:PeSanKita-android    文件:ComposeText.java   
public void setHint(@NonNull String hint,@Nullable CharSequence subHint) {
  this.hint = new SpannableString(hint);
  this.hint.setSpan(new RelativeSizeSpan(0.8f),hint.length(),Spannable.SPAN_INCLUSIVE_INCLUSIVE);

  if (subHint != null) {
    this.subHint = new SpannableString(subHint);
    this.subHint.setSpan(new RelativeSizeSpan(0.8f),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));
  }
}
项目:orgzly-android    文件:TitleGenerator.java   
private CharSequence generateState(OrgHead head) {
    SpannableString str = new SpannableString(head.getState());

    ForegroundColorSpan color;

    if (AppPreferences.todoKeywordsSet(mContext).contains(head.getState())) {
        color = attributes.colorTodo;
    } else if (AppPreferences.doneKeywordsSet(mContext).contains(head.getState())) {
        color = attributes.colorDone;
    } else {
        color = attributes.colorUnknown;
    }

    str.setSpan(color,str.length(),0);

    return str;
}
项目:yyox    文件:OrderDetailActivity.java   
@Override
    public void setFeeValue(Fee fee) {
        if (fee != null || 1 == getIntent().getIntExtra("type",OrderStatus.ORDER_STATUS_DETAIL)) {
            totalAmount = fee.getMoney().getTotalAmount();
            if (mOrderDetail.getCouponList() == null || mOrderDetail.getCouponList().getCoupon() == null || mOrderDetail.getCouponList().getCoupon().getName().equals("")) {
                mTextView_Coupon_Value.setText("有" + fee.getCouponNumber() + "张可用");
            }
//            mTextView_Fee.setText("运费:" + CommonUtils.doubleFormat(fee.getMoney().getTotalAmount()));

            SpannableString styledText = new SpannableString("运费:¥"+CommonUtils.doubleFormat(fee.getMoney().getTotalAmount()));
            int color = getResources().getColor(R.color.my_yellow);
            styledText.setSpan(new ForegroundColorSpan(color),Spanned.SPAN_INCLUSIVE_INCLUSIVE);
            mTextView_Fee.setText(styledText);

            mOrderDetail.setValueAddedlist(fee.getValueAddedlist());
            this.fee = fee.getMoney().getTotalAmount();
        }
    }
项目:MultiContactPicker    文件:MultiContactPickerAdapter.java   
private void highlightTerm(TextView tv,String query,String originalString){
    if (query != null && !query.isEmpty()) {
        int startPos = originalString.toLowerCase().indexOf(query.toLowerCase());
        int endPos = startPos + query.length();
        if (startPos != -1) {
            Spannable spannable = new SpannableString(originalString);
            ColorStateList blackColor = new ColorStateList(new int[][]{new int[]{}},new int[]{Color.BLACK});
            TextAppearanceSpan highlightSpan = new TextAppearanceSpan(null,Typeface.BOLD,-1,blackColor,null);
            spannable.setSpan(highlightSpan,startPos,endPos,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
            tv.setText(spannable);
        } else {
            tv.setText(originalString);
        }
    } else {
        tv.setText(originalString);
    }
}
项目:orgzly-android    文件:SpaceTokenizer.java   
@Override
public CharSequence terminateToken(CharSequence text) {
    int i = text.length();

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

    if (i > 0 && text.charAt(i - 1) == ' ') {
        return text;
    } else {
        if (text instanceof Spanned) {
            SpannableString sp = new SpannableString(text + " ");
            TextUtils.copySpansFrom((Spanned) text,sp,0);
            return sp;
        } else {
            return text + " ";
        }
    }
}
项目:QueryHighlighter    文件:QueryHighlighter.java   
public CharSequence apply(CharSequence text,CharSequence wordPrefix) {
    final CharSequence normalizedText = mQueryNormalizer.normalize(text);
    final CharSequence normalizedWordPrefix = mQueryNormalizer.normalize(wordPrefix);

    final int index = indexOfQuery(normalizedText,normalizedWordPrefix);
    if (index != -1) {
        final SpannableString result = new SpannableString(text);
        result.setSpan(mHighlightStyle,index + normalizedWordPrefix.length(),0);
        return result;
    } else {
        return text;
    }
}
项目:RetrofitSample    文件:DlEmptyLayout.java   
private void setEmptyTv(TextView textView,String tipStr,String clickStr) {
    if (!TextUtils.isEmpty(clickStr)) {
        SpannableString spStr = new SpannableString(tipStr + clickStr);
        mClickableSpan = new CustomizedClickableSpan(R.color.new_bg,getContext().getApplicationContext(),mOnClickListener);
        spStr.setSpan(mClickableSpan,tipStr.length(),tipStr.length() + clickStr.length(),Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
        textView.setText(spStr);
        textView.setMovementMethod(LinkMovementMethod.getInstance());
    } else {
        textView.setText(tipStr);
    }
}
项目:GongXianSheng    文件:DateFormateUtil.java   
public static SpannableString formatData(String time) {
    if ( TextUtils.isEmpty(time) ) {
        return null;
    }
    // 24小时内:几分钟前。。。,超过24小时:4月11日 20:20, 历史年份:2014年4月12日;
    final Calendar calend = dateFormatFromString(time,DateFormateUtil.FORMAT_FULL_DATE_TIME_WITH_SYMBOL);
    if (isToday(calend)) {
        SpannableString ss = new SpannableString("今天");
        ss.setSpan(new AbsoluteSizeSpan(18,true),ss.length(),Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
        return ss;
    }
    else if (isYesterday(calend)) {
        SpannableString yy = new SpannableString("昨天");
        yy.setSpan(new AbsoluteSizeSpan(18,yy.length(),Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
        return yy;
    }
    else {
        int day = calend.get(Calendar.DAY_OF_MONTH);
        String datStr = String.format("%02d",day);
        int month = calend.get(Calendar.MONTH)+1;
        String monthStr = getMonthForStr(month);
        SpannableString spannableString = new SpannableString(datStr+"\n"+monthStr);
        spannableString.setSpan(new AbsoluteSizeSpan(20,datStr.length(),Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
        spannableString.setSpan(new AbsoluteSizeSpan(16,datStr.length()+1,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
        return spannableString;
    }
}
项目:Aurora    文件: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,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    // 设置hint  
    v.setHint(new SpannedString(ss)); // 一定要进行转换,否则属性会消失
}
项目:yjPlay    文件:GestureVideoPlayer.java   
/****
 * 滑动进度
 *
 * @param  seekTimePosition  滑动的时间
 * @param  duration         视频总长
 * @param  seekTime    滑动的时间 格式化00:00
 * @param  totalTime    视频总长 格式化00:00
 **/
private void showProgressDialog(long seekTimePosition,long duration,String seekTime,String totalTime) {
    newPosition = seekTimePosition;
    if (onGestureProgressListener != null) {
        onGestureProgressListener.showProgressDialog(seekTimePosition,duration,seekTime,totalTime);
    } else {
        String stringBuilder = seekTime + "/" + totalTime;
        ForegroundColorSpan blueSpan = new ForegroundColorSpan(ContextCompat.getColor(activity,R.color.simple_exo_style_color));
        SpannableString spannableString = new SpannableString(stringBuilder);
        spannableString.setSpan(blueSpan,seekTime.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        getPlayerViewListener().setTimePosition(spannableString);
    }
}
项目:q-mail    文件:ICalendarHelper.java   
@VisibleForTesting
static CharSequence toFriendly(Attendee attendee,Contacts contacts,boolean showCorrespondentNames,boolean changeContactNameColor,int contactNameColor) {
    if (!showCorrespondentNames) {
        return attendee.getEmail();
    } else if (contacts != null) {
        final String name = contacts.getNameForAddress(attendee.getEmail());
        // TODO: The results should probably be cached for performance reasons.
        if (name != null) {
            if (changeContactNameColor) {
                final SpannableString coloredName = new SpannableString(name);
                coloredName.setSpan(new ForegroundColorSpan(contactNameColor),coloredName.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
                );
                return coloredName;
            } else {
                return name;
            }
        }
    }

    return (!TextUtils.isEmpty(attendee.getCommonName())) ? attendee.getCommonName() : attendee.getEmail();
}
项目:q-mail    文件:ICalendarHelper.java   
@VisibleForTesting
static CharSequence toFriendly(Organizer organizer,int contactNameColor) {
    if (organizer == null) {
        return null;
    }
    if (!showCorrespondentNames) {
        return organizer.getEmail();
    } else if (contacts != null) {
        final String name = contacts.getNameForAddress(organizer.getEmail());
        // TODO: The results should probably be cached for performance reasons.
        if (name != null) {
            if (changeContactNameColor) {
                final SpannableString coloredName = new SpannableString(name);
                coloredName.setSpan(new ForegroundColorSpan(contactNameColor),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
                );
                return coloredName;
            } else {
                return name;
            }
        }
    }

    return (!TextUtils.isEmpty(organizer.getCommonName())) ? organizer.getCommonName() : organizer.getEmail();
}
项目:q-mail    文件:MessageHelper.java   
@VisibleForTesting
/* package,for testing */ static CharSequence toFriendly(Address address,int contactNameColor) {
    if (!showCorrespondentNames) {
        return address.getAddress();
    } else if (contacts != null) {
        final String name = contacts.getNameForAddress(address.getAddress());
        // TODO: The results should probably be cached for performance reasons.
        if (name != null) {
            if (changeContactNameColor) {
                final SpannableString coloredName = new SpannableString(name);
                coloredName.setSpan(new ForegroundColorSpan(contactNameColor),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
                );
                return coloredName;
            } else {
                return name;
            }
        }
    }

    return (!TextUtils.isEmpty(address.getPersonal())) ? address.getPersonal() : address.getAddress();
}
项目:NeiHanDuanZiTV    文件:ArmsUtils.java   
/**
 * 设置hint大小
 *
 * @param size
 * @param v
 * @param res
 */
public static void setViewHintSize(Context context,否则属性会消失
}
项目:GitHub    文件:PiePolylineChartActivity.java   
private SpannableString generateCenterSpannableText() {

        SpannableString s = new SpannableString("MPAndroidChart\ndeveloped by Philipp Jahoda");
        s.setSpan(new RelativeSizeSpan(1.5f),14,0);
        s.setSpan(new StyleSpan(Typeface.NORMAL),s.length() - 15,0);
        s.setSpan(new ForegroundColorSpan(Color.GRAY),0);
        s.setSpan(new RelativeSizeSpan(.65f),0);
        s.setSpan(new StyleSpan(Typeface.ITALIC),s.length() - 14,0);
        s.setSpan(new ForegroundColorSpan(ColorTemplate.getHoloBlue()),0);
        return s;
    }
项目:FastLib    文件:SnackBarUtil.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,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        mWeakReference = new WeakReference<>(Snackbar.make(view,duration));
    } else {
        mWeakReference = new WeakReference<>(Snackbar.make(view,message,duration));
    }
    final Snackbar snackbar = mWeakReference.get();
    final View snackView = snackbar.getView();
    if (bgResource != -1) {
        snackView.setBackgroundResource(bgResource);
    } else if (bgColor != DEFAULT_COLOR) {
        snackView.setBackgroundColor(bgColor);
    }
    if (bottomMargin != 0) {
        ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) snackView.getLayoutParams();
        params.bottomMargin = bottomMargin;
    }
    if (actionText.length() > 0 && actionListener != null) {
        if (actionTextColor != DEFAULT_COLOR) {
            snackbar.setActionTextColor(actionTextColor);
        }
        snackbar.setAction(actionText,actionListener);
    }
    snackbar.show();
}
项目:Cable-Android    文件:ContactSelectionListAdapter.java   
private CharSequence getSpannedHeaderString(int position) {
  final String headerString = getHeaderString(position);
  if (isPush(position)) {
    SpannableString spannable = new SpannableString(headerString);
    spannable.setSpan(new ForegroundColorSpan(getContext().getResources().getColor(R.color.signal_primary)),headerString.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return spannable;
  } else {
    return headerString;
  }
}
项目:GitHub    文件:PostViewModel.java   
public Spannable getPostAuthor() {
    String author = context.getString(R.string.text_post_author,post.by);
    SpannableString content = new SpannableString(author);
    int index = author.indexOf(post.by);
    if (!isUserPosts) content.setSpan(new UnderlineSpan(),post.by.length() + index,0);
    return content;
}
项目:EmoticonGIFKeyboard    文件:EmoticonSearchAdapter.java   
@Override
public void onBindViewHolder(ViewHolder holder,int position) {
    final Emoticon emoji = mData.get(position);
    if (emoji != null) {
        if (mEmoticonProvider != null
                && mEmoticonProvider.hasEmoticonIcon(emoji.getUnicode())) { //Check if the icon for this emoticon is available?

            //Convert to spannable.
            // Replace the emoticon image with provided by custom icon pack.
            Spannable spannable = new SpannableString(emoji.getUnicode());
            spannable.setSpan(new EmoticonSpan(mContext,mEmoticonProvider.getIcon(emoji.getUnicode()),mContext.getResources().getDimension(R.dimen.emoticon_grid_text_size)),spannable.length() - 1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

            holder.icon.setText(spannable);
        } else {
            holder.icon.setText(emoji.getUnicode());
        }
        holder.icon.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mListener.OnEmoticonSelected(emoji);
            }
        });
    }
}
项目:CommentView    文件:SpanUtil.java   
public static Spannable getBoldSpan(String content) {
    if (TextUtils.isEmpty(content)) {
        return null;
    }
    SpannableString spannableString = new SpannableString(content);
    spannableString.setSpan(new StyleSpan(Typeface.BOLD),content.length(),Constants.SPAN_FLAGS);
    return spannableString;
}
项目: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;
}
项目:DailyStudy    文件:SpannableStringActivity.java   
/**
 * RelativeSizeSpan,设置文字相对大小,在TextView原有的文字大小的基础上,相对设置文字大小
 */
private void relativeSize () {
    SpannableString string = new SpannableString("设置文字的前景色为淡蓝色");
    RelativeSizeSpan sizeSpan = new RelativeSizeSpan(1.5f);
    string.setSpan(sizeSpan,9,string.length(),Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
    bgtext.setText(string);
}
项目:letv    文件:StringUtils.java   
public static SpannableString highlightParamText(String inputString,int index,String highlight,int color) {
    inputString = String.format(inputString,new Object[]{highlight});
    SpannableString spanString = new SpannableString(inputString);
    if (!TextUtils.isEmpty(inputString)) {
        int beginPos = index;
        if (beginPos > -1) {
            spanString.setSpan(new ForegroundColorSpan(color),beginPos,highlight.length() + beginPos,33);
        }
    }
    return spanString;
}
项目:GongXianSheng    文件:AbstractStockListFragment.java   
@Override
public void onBindViewHolder(ViewHolder viewHolder,int position) {
    final StockItem bean = mStockList.get(position);
    StockItem.Product productBean = bean.getProduct();
    if (productBean != null) {
        if (!TextUtils.isEmpty(mKeyword)) {
            int index = productBean.getName().indexOf(mKeyword);
            if (index != -1) {
                SpannableString spannStr = new SpannableString(productBean.getName());
                spannStr.setSpan(new ForegroundColorSpan(Color.parseColor("#6bb400")),index + mKeyword.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                viewHolder.name.setText(spannStr);
            }
        } else {
            viewHolder.name.setText(productBean.getName());
        }
        viewHolder.number.setText(productBean.getDefaultCode() + " | ");
        viewHolder.content.setText(productBean.getUnit());
        if (productBean.getImage() !=null){
            FrecoFactory.getInstance(getActivity()).disPlay(viewHolder.sDv,RunwiseService.ENDPOINT + productBean.getImage().getImageSmall());
        }
    }
    viewHolder.value.setText(NumberUtil.getIOrD(String.valueOf(bean.getQty())));
    viewHolder.uom.setText(bean.getUom());
    if (TextUtils.isEmpty(bean.getLotNum())){
        viewHolder.dateNumber.setVisibility(View.INVISIBLE);
    }else{
        viewHolder.dateNumber.setText(bean.getLotNum());
        viewHolder.dateNumber.setVisibility(View.VISIBLE);
    }
    viewHolder.dateLate.setText(DateFormateUtil.getLaterFormat(bean.getLifeEndDate()));
}
项目:decoy    文件:AitHelper.java   
public static void replaceAitForeground(String value,SpannableString mSpannableString) {
    if (TextUtils.isEmpty(value) || TextUtils.isEmpty(mSpannableString)) {
        return;
    }
    Pattern pattern = Pattern.compile("(\\[有人@你\\])");
    Matcher matcher = pattern.matcher(value);
    while (matcher.find()) {
        int start = matcher.start();
        if (start != 0) {
            continue;
        }
        int end = matcher.end();
        mSpannableString.setSpan(new ForegroundColorSpan(Color.RED),start,end,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
    }
}
项目:chromium-for-android-56-debug-video    文件:ItemChooserDialog.java   
/**
 * Shows an error message in the dialog.
 */
public void setErrorState(SpannableString errorMessage,SpannableString errorStatus) {
    mListView.setVisibility(View.GONE);
    mProgressBar.setVisibility(View.GONE);
    mEmptyMessage.setText(errorMessage);
    mEmptyMessage.setVisibility(View.VISIBLE);
    mStatus.setText(errorStatus);
}
项目:APIJSON-Android-RxJava    文件:PraiseTextView.java   
private void setSpan(SpannableString msp,final int index,int start,int end,final User user) {
    msp.setSpan(new ClickableSpan() {

        @Override
        public void onClick(View widget) {
            onNameClick(index,widget,user);
        }
    },Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);       
}

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

相关推荐


com.google.gson.internal.bind.ArrayTypeAdapter的实例源码
com.google.gson.JsonSyntaxException的实例源码
com.google.gson.JsonDeserializer的实例源码
com.google.gson.internal.ConstructorConstructor的实例源码
com.google.gson.JsonPrimitive的实例源码
com.google.gson.LongSerializationPolicy的实例源码
com.google.gson.internal.GsonInternalAccess的实例源码
com.google.gson.JsonIOException的实例源码
com.google.gson.internal.StringMap的实例源码
com.google.gson.JsonObject的实例源码
com.google.gson.internal.bind.TimeTypeAdapter的实例源码
com.google.gson.FieldAttributes的实例源码
com.google.gson.internal.bind.TreeTypeAdapter的实例源码
com.google.gson.internal.LinkedHashTreeMap的实例源码
com.google.gson.TypeAdapterFactory的实例源码
com.google.gson.JsonSerializer的实例源码
com.google.gson.FieldNamingPolicy的实例源码
com.google.gson.JsonElement的实例源码
com.google.gson.internal.JsonReaderInternalAccess的实例源码
com.google.gson.TypeAdapter的实例源码