ColorPicker и ColorView

Итак, я получил эту кнопку и этот ColorView на своем макете.xml, как вы видите на левом снимке, я хочу заполнить фон квадрата ColorView цветом, выбранным пользователем в диалоговом окне, которое вы видите на правом снимке.

введите описание изображения здесь введите описание изображения здесь

Мой.xml код:

    <Button
       android:id="@+id/color_button"
       style="@style/buttonStyle"
       android:layout_width="280sp"
       android:layout_height="wrap_content"
       android:layout_alignBottom="@+id/color_view"
       android:layout_alignParentStart="true"
       android:layout_marginStart="13dp"
       android:onClick="showColorPickerDialog"
       android:text="Color" />

    <es.lost2found.lost2foundUI.pickerUI.ColorView
       android:id="@+id/color_view"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentEnd="true"
       android:layout_centerVertical="true"
       android:layout_marginEnd="18dp"
       android:background="@color/otherUserMsgColor">
    </es.lost2found.lost2foundUI.pickerUI.ColorView>

Вызванный на кнопке метод onClick:

public void showColorPickerDialog(View v) {
    ColorPickerUI colorpicker = new ColorPickerUI();
    colorpicker.build()
            .title(R.string.color_dialog_title)
            .colorPreset(Color.BLACK)
            .allowCustom(true)
            .show(this, "dialog");
}

Я использую https://github.com/QuadFlask/colorpicker, я не знаю, есть ли способ сделать то, что я хочу, я искал в хранилище и не нашел его.

Если есть какой-либо способ получить то, что я хочу, с другим colorPicker, дайте мне знать, пожалуйста, любая помощь будет оценена!

2 ответа

Решение

Наконец я понял, я использовал onColorSet() метод в моем классе ColorPicker, я поместил здесь код на случай, если кому-то это нужно

View view = getActivity().findViewById(R.id.color_view);
view.setBackgroundColor(mSelectedColor);

Все, что мне нужно сделать, это использовать переменную mSelectedColor и setBackground с ней. Большое спасибо @Pavneet_Singh за вашу помощь, я уверен, что кто-то будет использовать ваш код!

Вам нужно добавить слушателя, который будет срабатывать при выборе цвета или нажатии положительной кнопки, поэтому используйте его как

public void showColorPickerDialog(View v) {
    ColorPickerUI colorpicker = new ColorPickerUI();
    colorpicker
            .title(R.string.color_dialog_title)
            .colorPreset(Color.BLACK)
            .allowCustom(true)// change color on continuous selection
            .addOnColorChangedListener(new OnColorChangedListener() {
                @Override
                public void onColorChanged(int selectedColor) {
                    findViewById(R.id.color_button).setBackgroundColor(selectedColor);
                }
            })// change color on selection
            .addOnColorSelectedListener( new OnColorSelectedListener() {
                @Override
                public void onColorSelected(int selectedColor) {
                    findViewById(R.id.color_button).setBackgroundColor(selectedColor);
                }
            })
            .build().show(this, "dialog");
}
Другие вопросы по тегам