ToggleButton Text Label Placement for On and Off State

user123321 picture user123321 · Jul 26, 2011 · Viewed 9.4k times · Source

Is there anyway to control the text position for a ToggleButton's on and off state? For instance, I want the text label to be left aligned when on and right aligned when off.

EDIT: Also, I'd to include a little padding for the text on the left and right. About 5dp. and have finer control over the label placement if possible.

ANSWER: This is what I needed!

button.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
button.setPadding(0, 0, 5, 0);

Answer

Entreco picture Entreco · Jul 26, 2011
  
public class StackActivity extends Activity implements OnCheckedChangeListener {

    private ToggleButton tb;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        tb = (ToggleButton)findViewById(R.id.toggleButton1);
        tb.setOnCheckedChangeListener(this);

    }

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
    {
        if(isChecked)
        {
            tb.setGravity(Gravity.LEFT);
            tb.setPadding(5,0,0,0);    // Set left padding 
        } else
        {
            tb.setGravity(Gravity.RIGHT);
            tb.setPadding(0,0,5,0);    // Set right padding
        }
    }
}