Je dois créer une boîte de dialogue dans une application Android dans laquelle un utilisateur peut sélectionner l'une des couleurs prédéfinies. J'ai trouvé this color picker qui convient bien à mes besoins. L'intégration dans le projet Android existant n'était pas un problème mais je n'arrive pas à le faire fonctionner correctement. J'ai des problèmes:Utilisation de Android ColorPickerPalette
La boîte de dialogue s'affiche correctement, y compris le ColorPickerPlatte. Cependant, je ne peux pas changer la couleur sélectionnée. Ai-je besoin de le faire moi-même en utilisant le gestionnaire d'événements qui peut être passé à la fonction init?
Comment puis-je récupérer la couleur actuellement sélectionnée?
Voici ce que je faisais:
J'ai créé une mise en page que je reproduis en vue de la boîte de dialogue. Dans ce point de vue, j'ai ajouté un ColorPickerPalette comme suit:
<com.android.colorpicker.ColorPickerPalette xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/color_picker"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:padding="16dp" />
Dans l'étape suivante, je mis en place la boîte de dialogue, y compris le ColorPickerPalette. Je le fais avec le code (Kotlin) suivant:
val SELECTABLE_COLORS = intArrayOf(Color.BLACK, Color.GREEN, Color.RED, Color.BLUE)
val inflater = LayoutInflater.from(context)
val dialogView = inflater.inflate(R.layout.add_activity_form, null)
val colorPickerPalette = dialogView.findViewById(R.id.color_picker) as ColorPickerPalette
colorPickerPalette.init(SELECTABLE_COLORS.size, 4, {})
colorPickerPalette.drawPalette(SELECTABLE_COLORS, SELECTABLE_COLORS[0])
val dialogBuilder = AlertDialog.Builder(context)
dialogBuilder
.setTitle(R.string.dialog_create_activity_title)
.setCancelable(false)
.setView(dialogView)
.setNegativeButton(R.string.cancel, null)
.setPositiveButton(R.string.add, null)
return dialogBuilder.create()
Je n'ai trouvé aucune information sur le site du projet ci-dessus. Peut-être parce que c'est trop facile/évident mais n'importe quelle aide serait appréciée!
Je pense que vous n'avez pas initialisé l'écouteur. Selon le [projet] (http://www.materialdoc.com/color-picker/#), vous devez initialiser un écouteur. 'colorPickerPalette.init (colors.length, columns, mOnColorSelectedListener);' – Abhi
Exactement, je ne l'ai pas initialisé car je n'ai pas besoin d'exécuter une certaine logique sur le changement de couleur. De plus, je m'attendais à ce que le plugin gère le changement de couleur sans que je doive l'implémenter. Cependant, si je dois le faire: Savez-vous comment je dois initialiser l'auditeur? – Patrick
N'auriez-vous pas besoin d'un écouteur pour un changement de couleur? Pour initialiser l'écouteur, ajoutez ce qui suit à votre code. 'colorPickerPalette.init (colors.length, columns, mOnColorSelectedListener);' – Abhi