Android, как сделать текст кнопки полужирным при нажатии или фокусировании

Я хочу изменить текст в кнопке, чтобы быть полужирным, когда кнопка выделяется или нажимается. Я в настоящее время использую XML-файл, чтобы определить кнопку и использовать XML, чтобы измениться, как это смотрит при нажатии, но я хотел бы сделать это, не используя изображение.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true"
          android:state_pressed="false" 
          android:drawable="@drawable/reset_hover" />
    <item android:state_focused="true" 
          android:state_pressed="true"
          android:drawable="@drawable/reset_hover" />
    <item android:state_focused="false" 
          android:state_pressed="true"
      android:drawable="@drawable/reset_hover" />
    <item android:drawable="@drawable/reset" />
</selector>

Я пытался использовать что-то как следующее, но это, кажется, никогда не называют.

    final Button btn_reset = (Button) findViewById(R.id.btn_reset);
    btn_reset.setOnClickListener(this); 
    btn_reset.setOn(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus){btn_reset.setTypeface(null, Typeface.BOLD);}
        else{btn_reset.setTypeface(null, Typeface.NORMAL);}
    }
   });
20
задан stealthcopter 21 April 2010 в 10:26
поделиться

2 ответа

Вы можете создать свой собственный стиль. xml, в котором вы определите стиль текста. В селекторе вы можете ссылаться на этот стиль. style.xml

<style name="myStyle">  
    <item name="android:textSize">9px</item>
    <item name="android:gravity">center_horizontal</item>
    <item name="android:textColor">#fff</item>
    <item name="android:textStyle">bold</item>
</style>

И в вашем селекторе

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true"
      android:state_pressed="false" 
      style="@style/myStyle" /> </selector>
6
ответ дан 29 November 2019 в 23:40
поделиться

Вы можете попробовать поместить полужирный код в событие click для кнопки:

final Button button = (Button) findViewById(R.id.button_id);
         button.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 // Set bold on click
                 button.setTypeface(null, Typeface.BOLD);
             }
         });
36
ответ дан 29 November 2019 в 23:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: