开发者

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 appreciate开发者_运维百科d.


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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜