我需要在Android应用程序中建立一个对话框,用户可以在其中选择几种预定义颜色中的一种。我找到了适合我需求的this color picker。 在现有的Android项目中的集成不是一个问题,但我没有得到它的正常工作。我有问题:Android ColorPickerPalette的使用
对话框显示正确,包括ColorPickerPlatte。但是,我无法更改所选颜色。我是否需要通过使用可以传递给init函数的事件处理程序来自己完成此操作?
如何检索当前选择的颜色?
这里是我做过什么:
我创建了一个布局,我设置为对话视图。在此视图中,我添加了一个ColorPickerPalette如下:
<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" />
在我建立包括ColorPickerPalette对话框下一步骤。我使用以下(Kotlin)代码执行此操作:
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()
我在上面链接的项目网站上找不到任何信息。也许因为它太容易/明显,但任何帮助,将不胜感激!
我想你并没有初始化Listener。根据[project](http://www.materialdoc.com/color-picker/#),你需要初始化一个监听器。 'colorPickerPalette.init(colors.length,columns,mOnColorSelectedListener);' – Abhi
准确地说,我没有初始化它,因为我不需要在颜色变化上执行一些逻辑。此外,我希望插件能够处理颜色变化,而不必实施它。但是,如果我必须这样做:你知道我如何初始化侦听器吗? – Patrick
难道你不需要听众的颜色变化?要初始化侦听器,请将以下内容添加到您的代码中。 'colorPickerPalette.init(colors.length,columns,mOnColorSelectedListener);' – Abhi