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");
}