La teinte de fond est correctement appliquée sur l'API 23, mais pas sur l'API 19. Comment puis-je obtenir la teinte attirante pour l'API 19 et les versions inférieures?
<Button
Android:layout_width="40dp"
Android:layout_height="40dp"
Android:id="@+id/AbResetBtn"
Android:background="@Android:drawable/stat_notify_sync"
Android:backgroundTint="@color/button_material_light" />
Bien entendu, mon activité s'étend à AppCompatActivity.
Cela a fonctionné pour moi sur le périphérique API 19, bibliothèque de support v7
disposition
<Button
Android:id="@id/btn"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/label"
style="@style/Button"
/>
modes
<style name="Button" parent="Base.TextAppearance.AppCompat.Button" >
<item name="backgroundTint">@color/fab_bg</item>
</style>
Vous devez utiliser la bibliothèque de support Android 22.1+ pour utiliser AppCompatButton http://Android-developers.blogspot.se/2015/04/Android-support-library-221.html
Mais malheureusement, vous ne pourrez pas le faire dans le XML.
Dans le onCreate de votre activité, à ce qui suit:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AppCompatButton v = (AppCompatButton) findViewById(R.id.mybutton);
ColorStateList csl = new ColorStateList(new int[][]{new int[0]}, new int[]{0xffffcc00});
v.setSupportBackgroundTintList(csl);
}
}
Plus d'infos ici: L'arrière-plan de Lollipop n'a aucun effet sur un bouton
Astuce: vous pourrez peut-être tout faire dans le xml en utilisant app: backgroundTint = "@ color/button_material_light", mais je n’ai pas testé.
--MODIFIER--
Vérifiez @ ema3272 deuxième commentaire pour la solution complète
Je connais sa petite question un peu ancienne mais vous n'avez même pas besoin de créer un élément de style.
Utilisez simplement AppCompatButton à partir de la bibliothèque de support avec app: namespace.
<Android.support.v7.widget.AppCompatButton Android:layout_width="40dp"
Android:layout_height="40dp"
Android:id="@+id/AbResetBtn"
Android:background="@Android:drawable/stat_notify_sync"
app:backgroundTint="@color/button_material_light" />
Vous devez mettre à jour un "bouton" en "androidx.appcompat.widget.AppCompatButton" et "Android: backgroundTint" en "app: androidTint".
Avant:
<Button
Android:id="@+id/button"
Android:layout_width="200dp"
Android:layout_height="0dp"
Android:textColor="@color/colorAccent"
Android:backgroundTint="@color/colorAccent"
Android:background="@drawable/empty_list_state_button"
Android:text="@string/button_title"
app:layout_constraintTop_toBottomOf="@id/distance"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
Android:layout_marginTop="16dp"
Android:layout_marginBottom="16dp"
/>
Après:
<androidx.appcompat.widget.AppCompatButton
Android:id="@+id/button"
Android:layout_width="200dp"
Android:layout_height="0dp"
Android:textColor="@color/colorAccent"
app:backgroundTint="@color/colorAccent"
Android:background="@drawable/empty_list_state_button"
Android:text="@string/button_title"
app:layout_constraintTop_toBottomOf="@id/distance"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
Android:layout_marginTop="16dp"
Android:layout_marginBottom="16dp"
/>