Пользовательская (круглая) кнопка переключения - PullRequest
2 голосов
/ 17 августа 2010

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

Ответы [ 3 ]

10 голосов
/ 08 октября 2010

Вам нужно переопределить вид кнопки переключения с помощью некоторого пользовательского xml

краткий обзор:

  • создавайте png-файлы с использованием внешнего вида ваших кнопок, если вам нравятся переключатели, выберите их из ... \ eclipse_android-sdk-windows \ platform \ android-8 \ data \ res \ drawable-hdpi
  • в вашем макете xml android: background = "@ drawable / round_toggle" />

  • добавить селекторы с таким количеством состояний (до 6 + по умолчанию) в 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>
    

полная информация в http://www.anddev.org/act_custom_togglebuttons-t10620.html

4 голосов
/ 17 августа 2010

Почему бы не использовать представление RadioButton и раскладку RadioGroup?

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());                   
     }
});
0 голосов
/ 17 августа 2010

Вы можете попробовать перекрасить флажок. Следующая ссылка является руководством по этому вопросу:

ссылка

...