android source

spannable, setSpan()

리오파파 2019. 7. 23. 11:40

refer to myHolyBible.apk

 

SpannableString ss = new SpannableString(bodyText);

ss.setSpan(new keywordSpan(keywords[i], keywordV[i]), keywordF[i], keywordT[i], Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

ss.setSpan(new ForegroundColorSpan(verseColorFore), verseF[i], verseT[i], Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new StyleSpan(BOLD), verseF[i], verseT[i], Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

ss.setSpan(new ForegroundColorSpan(paraColorFore), paraF[i], paraT[i], Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new UnderlineSpan(), paraF[i], paraT[i], Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new StyleSpan(BOLD), paraF[i], paraT[i], Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

ss.setSpan(new crossSpan(crossS[i], crossV[i]), crossF[i], crossT[i], Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);


public class keywordSpan extends ClickableSpan {

  String key;
  int verse;
  keywordSpan(String key, int verse) { this.key = key; this.verse = verse;}

  Typeface boldface = Typeface.create(Typeface.DEFAULT, BOLD);
  Float dicTextSize = textSizeKeyWord * 2.6f;
  @Override
  public void updateDrawState(@NonNull TextPaint ds) {
    ds.setColor(dictColorFore);
    ds.setTypeface(boldface);
    ds.setTextSize(dicTextSize);
  }

  @Override
  public void onClick(@NonNull View widget) {
    dictWord = key;
    nowVerse = verse;
    makeKeyWord();
  }
}

public class crossSpan extends ClickableSpan {

  String key;
  int verse;
  crossSpan(String key, int verse) { this.key = key; this.verse = verse;}
  @Override
  public void updateDrawState(@NonNull TextPaint ds) {
    ds.setColor(referColorFore);
    ds.setTextSize(textSizeBibleRefer+textSizeBibleRefer);  // double size
    ds.setUnderlineText(false);    // this remove the underline
  }

  @Override
  public void onClick(@NonNull View widget) {
    dictWord = key;
    nowVerse = verse;
    makeCrossing();
  }
}

'android source ' 카테고리의 다른 글

readyPackageFolder(), 특정 폴더 만들기  (0) 2019.07.23
getDirectoryFiltered()  (0) 2019.07.23
backPressed()  (0) 2019.07.23
public directory 가져오기  (0) 2019.07.23
webView, file url link  (0) 2019.07.23