1

我有一个 TextView,我用自定义字体设置它并使其变为 BOLD。这很好用。问题是当我检查文本“isBold()”是否返回 FALSE 时。

如果我只将文本设置为 BOLD,而不指定字体;isBold() 返回 TRUE。另请注意,当我设置 tempTextView.setTypeface(MY_STYLE, Typeface.BOLD); 时,我可以选择多个自定义字体“MY_STYLE”。

这是我的代码片段:

public boolean onTouch(View v, MotionEvent evt) {
    if(evt.getAction() == MotionEvent.ACTION_DOWN) {
        int  numLettersSelected = 0;
        if(v.getTag() == "randomLetter") {
             TextView tempTextView = (TextView) v;

             if((selectedStrs.contains(tempTextView.getText())) && 
                (tempTextView.getTypeface().isBold())) {   //This line returns FALSE
                // Do something
             }
             else {  
                String matchLtr = String.valueOf(randomWordStr.charAt(numLetterToSelect));

                if(tempTextView.getText().equals(matchLtr)) {
                    tempTextView.setTypeface(MY_STYLE, Typeface.BOLD); 
                   //tempTextView.setTypeface(null, Typeface.BOLD);// if I set MY_STYLE to null isBold() returns TRUE above
                }
             }
         }                       
    }
    return false;
}

/* Here is how I defined MY_STYLE */

public Typeface fontStyle(Context m_Context) {
    Typeface f_style = Typeface.MONOSPACE;

    //Get Text Style from Options
    OptionsSpell option = new OptionsSpell();
    switch (option.getTextStyle()) {
    case 1:
        f_style = Typeface.createFromAsset(m_Context.getAssets(), "dnealian.ttf");
        break;
    case 2:
        f_style = Typeface.createFromAsset(m_Context.getAssets(), "comic.ttf");
        break;
    }
    return f_style;
}

// Return text style to caller
public int getTextStyle () {
    int selectedId; 

    //Check logic and return selectedId = 1 or 2

    return selectedId;
}

// Get Text FONT info from Options
OptionsSpellUtil m_Options = new OptionsSpellUtil();
MY_STYLE = m_Options.fontStyle(this);
4

0 回答 0