Android learning notes-ToggleButton and Switch, togglebuttonswitch
Reference: http://www.runoob.com/w3cnote/android-tutorial-togglebutton-switch.html
The basic Android UI controls described in this section are: ToggleButton and Switch. Both are actually Switch components, but the latter must be used after Android 4.0. Therefore, AndroidManifest. the minsdk in the xml file must be greater than or equal to 14. Otherwise, an error is returned ~, Let's take a look at what the two controls look like first. After Android 5.0, these two controls look much better than before. Let's take a look at what we looked like before Android 5.0:
ToggleButton and Switch before 5.0:
Version 5.0:
Well, in stark contrast... let's take a look at the use of the two controls. In fact, the two are almost the same.
Paste the official API first: Switch; ToggleButton
1. Explanation of core attributes: 1) ToggleButton (switch button)
The following attributes can be set:
- Android: disabledAlpha: Sets the transparency of the button when it is disabled.
- Android: textOff:Text displayed when the button is not selected
- Android: textOn:The text displayed when the button is selected. In addition to this, you can also write a selector and set the Background attribute ~
2) Switch)
The following attributes can be set:
- Android: showText:Whether to display text when setting on/off, boolean
- Android: splitTrack:Whether to set a gap to separate the slider from the bottom image, boolean
- Android: switchMinWidth:Set the minimum width of the switch.
- Android: switchPadding:Set the text interval in the slider
- Android: switchTextAppearance:Set the text appearance of the switch. Nothing is found at the moment...
- Android: textOff:Text displayed when the button is not selected
- Android: textOn:Text displayed when the button is selected
- Android: textStyle:Text style, bold, italic-style dashes
- Android: track:Bottom Image
- Android: thumb:Slider Image
- Android: typeface:Set the font. The three types of fonts are supported by default: sans, serif, and monospace. You can also use other font files (*. Ttf), First save the font file in the assets/fonts/directory, but you need to set it in Java code:Typeface typeFace = Typeface. createFromAsset (getAssets (), "fonts/HandmadeTypewriter. ttf"); textView. setTypeface (typeFace );
2. Example:
Because it is relatively simple, we write them together. In addition, we set the slider and the image at the bottom for the Switch to achieve a slider effect similar to IOS 7, however, the disadvantage is that you cannot set the size of the slider and the bottom in XML, that is, the size of the material and the size of the Switch. We can obtain the Drawable object in Java, then modify the size. A simple example is as follows:
Run:
Implementation Code:First, two drawable files:Thumb_selctor.xml:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/switch_btn_pressed"/> <item android:state_pressed="false" android:drawable="@drawable/switch_btn_normal"/></selector>
Track_selctor.xml:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@drawable/switch_btn_bg_green"/> <item android:state_checked="false" android:drawable="@drawable/switch_btn_bg_white"/></selector>
Layout file: activity_main.xml:
<LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: tools = "http://schemas.android.com/tools" android: layout_width = "match_parent" android: layout_height = "match_parent" android: orientation = "vertical" tools: context = ". mainActivity "> <ToggleButton android: id =" @ + id/tbtn_open "android: layout_width =" wrap_content "android: layout_height =" wrap_content "android: checked =" true "android: textOff = "Disable sound" android: textOn = "enable sound"/> <Switch android: id = "@ + id/swh_status" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: textOff = "" android: textOn = "" android: thumb = "@ drawable/thumb_selctor" android: track = "@ drawable/track_selctor"/> </LinearLayout>
MainActivity. java:
Public class MainActivity extends AppCompatActivity implements CompoundButton. onCheckedChangeListener {private ToggleButton tbtn_open; private Switch swh_status; @ Override protected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. activity_main); tbtn_open = (ToggleButton) findViewById (R. id. tbtn_open); swh_status = (Switch) findViewById (R. id. swh_status); invoke (this); swh_status.setOnCheckedChangeListener (this) ;}@ Override public void onCheckedChanged (CompoundButton compoundButton, boolean B) {switch (compoundButton. getId () {case R. id. tbtn_open: if (compoundButton. isChecked () Toast. makeText (this, "enable sound", Toast. LENGTH_SHORT ). show (); else Toast. makeText (this, "enable sound", Toast. LENGTH_SHORT ). show (); break; case R. id. swh_status: if (compoundButton. isChecked () Toast. makeText (this, "Switch: ON", Toast. LENGTH_SHORT ). show (); else Toast. makeText (this, "Switch: OFF", Toast. LENGTH_SHORT ). show (); break ;}}}