Je veux avoir le bouton de changement de style Lollipop pour mon application:
Comment puis-je implémenter ce bouton afin qu'il ressemble à ceci également sur les anciennes versions d'Android?
Au début, définissez Android:targetSdkVersion="22"
dans votre manifeste pour rendre votre application compatible avec Lollipop .
NOTE: La couleur de votre commutateur en dépend
<item name="Android:colorAccent">@color/accent</item>
Créez votre propre thème pour votre application dans styles.xml dans Dossier values-v21
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="AppTheme.Base">
<item name="Android:colorPrimary">@color/primary</item>
<item name="Android:colorPrimaryDark">@color/primary_dark</item>
<item name="Android:colorAccent">@color/accent</item>
<item name="Android:textColorPrimary">@color/text_primary</item>
<item name="Android:textColor">@color/text_secondary</item>
<item name="Android:navigationBarColor">@color/primary_dark</item>
<item name="toolbarStyle">@style/Widget.AppCompat.Toolbar</item>
</style>
</resources>
styles.xml in default Folder values ou values-v14
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="AppTheme.Base">
<!-- Customize your theme here. -->
<item name="toolbarStyle">@style/Widget.AppCompat.Toolbar</item>
</style>
<style name="AppTheme.Base" parent="Theme.AppCompat">
<!-- Customize your theme here. -->
<!-- colorPrimary is used for the default action bar background -->
<item name="colorPrimary">@color/primary</item>
<!-- colorPrimaryDark is used for the status bar -->
<item name="colorPrimaryDark">@color/primary_dark</item>
<!-- colorAccent is used as the default value for colorControlActivated
which is used to tint widgets -->
<item name="colorAccent">@color/accent</item>
<!-- You can also set colorControlNormal, colorControlActivated
colorControlHighlight & colorSwitchThumbNormal. -->
</style>
</resources>
Pour avoir le bouton de changement de style Lollipop sur les anciennes versions d'Android, vous devez utiliser SwitchCompat dans un fichier XML
<Android.support.v7.widget.SwitchCompat
Android:id="@+id/compatSwitch"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"/>
et aussi en fichier Java
SwitchCompat switchCompat = (SwitchCompat) findViewById(R.id.compatSwitch);
Il existe un excellent article sur le blog Android Developers qui explique comment utiliser la conception de matériel sur des appareils antérieurs à Lollipop: http://Android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for -pre.html
Pour répondre plus précisément à votre question, vous pouvez utiliser le commutateur de style Lollipop pour les versions antérieures à l’aide de l’API SwitchCompat
: https://developer.Android.com/reference/Android/support/v7/widget/SwitchCompat.html
API 24 marche/arrêt
<Android.support.v7.widget.SwitchCompat
Android:id="@+id/switch1"
Android:layout_alignBottom="@+id/textView3"
Android:layout_alignEnd="@+id/input_layout_password"
Android:layout_alignRight="@+id/input_layout_password"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"/>
Je pense que ce dont vous avez besoin est dans cette bibliothèque
ce que cette bibliothèque fait est de vous permettre de créer un bouton de changement de conception de matériau comme dans andorid 5.0
Nous utilisons SwitchCompact dans la version Lollipop ou vous pouvez utiliser la version mise à jour de Lolliopop, c'est mieux
<Android.support.v7.widget.SwitchCompat
Android:id="@+id/compatSwitch"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@+id/switch2"
Android:layout_alignLeft="@+id/switch2"
Android:layout_alignStart="@+id/switch2"
Android:layout_marginTop="39dp" />
Afin de résoudre l'ancien type de commutateur
`
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorAccent">@color/colorAccent</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
</style>`
et il résout le commutateur avec la dernière conception matérielle.