1

カスタム書体で設定して太字にする TextView があります。それはうまくいきます。問題は、テキスト「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