简体   繁体   中英

Custom (round) toggle button

I am trying to build a custom toggle button in Android, I want it to look like radio button but function as toggle button. Can some one help me with this? any clue hints close to answer is appreciated.

You need to override the look of the toggle button via some custom xml

quick overview:

  • create png files with the look and feel of your buttons, if you like the radio buttons, grab them from ...\\eclipse_android-sdk-windows\\platforms\\android-8\\data\\res\\drawable-hdpi
  • in your layout xml android:background="@drawable/round_toggle" />

  • add selectors with as many states (up to 6 + default) in round_toggle.xml

     <?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:state_pressed="true" android:drawable="@drawable/roundtoggle_on_pressed" /> <item android:state_checked="true" android:state_focused="true" android:drawable="@drawable/roundtoggle_on_focused" /> <item android:state_checked="true" android:state_focused="false" android:drawable="@drawable/roundtoggle_on_normal" /> <item android:state_checked="false" android:state_pressed="true" android:drawable="@drawable/roundtoggle_off_pressed" /> <item android:state_checked="false" android:state_focused="true" android:drawable="@drawable/roundtoggle_off_focused" /> <item android:state_checked="false" android:state_focused="false" android:drawable="@drawable/roundtoggle_off_normal" /> <item android:drawable="@drawable/roundtoggle_off_normal" /> </selector> 

full details in http://www.anddev.org/act_custom_togglebuttons-t10620.html

Why not use the RadioButton view and RadioGroup layout?

RadioButton myRadioButton = (RadioButton)findViewById(R.id.myradiobutton);
myRadioButton.setOnClickListener(new OnClickListener() {

     @Override
     public void onClick(View v) {
          // Toggle the radio button on click.
          RadioButton button = (RadioButton)v;
          button.setChecked(!button.isChecked());                   
     }
});

You could try re-skinning a checkbox. The following link is a tutorial on doing so:

link

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM