Как установить пользовательский textStyle в классе? - PullRequest
0 голосов
/ 09 июля 2019

Я создаю класс и устанавливаю стиль текста. Я уже определил в attrs и styleable и style, и сделал getter setter и set textStyle полужирным, но текст не становится полужирным. Как установить жирный текст? Пожалуйста, помогите?

 <declare-styleable name="CustomTagGroup"> 
        <attr name="descriptionTextStyle" format="flags">
            <flag name="normal" value="0" />
            <flag name="bold" value="1" />
            <flag name="italic" value="2" />
            <flag name="bolditalic" value="3" />
        </attr>

    <style name="CustomTagGroup">
  <item name="atg_horizontalPadding">12dp</item>
        <item name="atg_verticalPadding">3dp</item>
        <item name="android:textStyle">bold</item>
        <item name="descriptionTextStyle">bolditalic</item>
    </style>

  final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomTagGroup, defStyleAttr, R.style.CustomTagGroup);
        try {
a.getType(R.styleable.CustomTagGroup_descriptionTextStyle);
            int bold = Typeface.BOLD_ITALIC;
            textStyle = a.getInt(R.styleable.CustomTagGroup_descriptionTextStyle, bold);
}catch(Exception e){
e.printStackTrace()
}

1 Ответ

0 голосов
/ 09 июля 2019

Это ваш пользовательский класс, который расширяет TextView ?Если да, то сначала получите атрибут, который вы определяете в своем XML как:

<com.package.CustomTextView
 ......
 app:text_style = "1"
/>

После получения значения атрибута добавьте setBold с помощью кода ниже

@Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        // set your if else condition that come from attr
        // Like you get 1 then execute below line
        this.setTypeface(getTypeface(),Typeface.BOLD);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...