The AOSP color picker, neatly packaged for gradle builds
Android color picker is the stock color picker that comes bundled in a few apps distributed by Google, with the calendar app being the main example. It allows you to specify a list of colors, show the user a dialog, and get the result. Nice and simple.
I needed a color picker for Android, the stock color picker was exactly what I wanted, but grabbing the source, compiling down and using a local repository compiled to an AAR is nowhere near as fun as a Gradle dep.
In your build file:
compile 'uk.co.jordanrobinson:android-color-picker:1.0.2'
in your layout:
<Button
android:id="@+id/color_picker"
android:layout_width="fill_parent"
android:layout_height="60dip"
android:onClick="showColourPicker"
android:text="Pick a colour!"
android:gravity="center" />
in your activity:
import com.android.colorpicker.ColorPickerDialog;
import com.android.colorpicker.ColorPickerSwatch;
public void showColourPicker(View view) {
final ColorPickerDialog colorPickerDialog = new ColorPickerDialog();
colorPickerDialog.initialize(R.string.color_picker_default_title,
new int[] {
getResources().getColor(R.color.GlobalColorDark),
getResources().getColor(R.color.ThemeOneDark),
getResources().getColor(R.color.ThemeTwoDark),
getResources().getColor(R.color.ThemeThreeDark),
getResources().getColor(R.color.ThemeFourDark),
getResources().getColor(R.color.ThemeFiveDark),
getResources().getColor(R.color.ThemeSixDark),
getResources().getColor(R.color.ThemeSevenDark),
getResources().getColor(R.color.ThemeEightDark),
getResources().getColor(R.color.ThemeNineDark),
getResources().getColor(R.color.ThemeTenDark),
getResources().getColor(R.color.ThemeElevenDark),
}, getResources().getColor(R.color.ThemeOneDark), 3, 2);
colorPickerDialog.setOnColorSelectedListener(new ColorPickerSwatch.OnColorSelectedListener() {
@Override
public void onColorSelected(int colour) {
YourActivity.this.setYourFragmentBackgroundColour(colour);
}
});
android.app.FragmentManager fm = this.getFragmentManager();
colorPickerDialog.show(fm, "colorpicker");
}
And you're good to go!
If there are bugs and fixes that come from downstream, I'll update if I notice them myself, or if anyone raises an issue I'll do my best to keep up.
Contributions are of course always welcome, but to avoid disappointment, send me a message if you're making any radical changes to make sure it's the kind of thing I'm expecting. Thanks!
I'm not going to rule out new features coming from me, but at present they aren't really needed by me. Feel free to submit requests though!