Android how to make button text bold when pressed or focussed

后端 未结 3 1197
执念已碎
执念已碎 2020-12-08 21:28

I want to change the text inside a button to be bold when the button is highlighted or pressed. I currently use a xml file to define the button and use the XML to change how

相关标签:
3条回答
  • 2020-12-08 22:06

    You could try putting the bold code inside the click event for the button:

    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);
                 }
             });
    
    0 讨论(0)
  • 2020-12-08 22:08

    Styles are not allowed in selectors. Reference


    And to make the text bold, use this code:

    btn_reset.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
    
            switch (event.getAction()) {
                // When the user clicks the Button
                case MotionEvent.ACTION_DOWN:
                    btn_reset.setTypeface(Typeface.DEFAULT_BOLD);
                    break;
    
                // When the user releases the Button
                case MotionEvent.ACTION_UP:
                    btn_reset.setTypeface(Typeface.DEFAULT);
                    break;
            }
            return false;
        }
    });
    
    0 讨论(0)
  • 2020-12-08 22:10

    Attention! See update below


    You could create your own style.xml in which you define the text style. In your selector you can reference to the style. 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>
    

    And in your selector

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true"
          android:state_pressed="false" 
          style="@style/myStyle" /> </selector>
    

    Update 2020: My answer is more than 10 years old. It doesn´t work anymore!

    0 讨论(0)
提交回复
热议问题