Android颜色选择器之ColorPickerDialog剖析:
在Android中在APIDemos中已经实现了这一功能:位置为:
com.example.android.apis.graphics.ColorPickerDialog中
发现他是一个颜色选择框,那个类参考了他呢,搜索一下知道了,是一个涂鸦的工具参考了他,即:
FingerPaint
接下来还是直接看代码:
- package com.example.android.apis.graphics;
- import android.os.Bundle;
- import android.app.Dialog;
- import android.content.Context;
- import android.graphics.*;
- import android.view.MotionEvent;
- import android.view.View;
- public class ColorPickerDialog extends Dialog {
- public interface OnColorChangedListener {
- void colorChanged(int color);
- }
- private OnColorChangedListener mListener;
- private int mInitialColor;
- private static class ColorPickerView extends View { //颜色选择器自定义View
- private Paint mPaint;<span><span></span><span class="comment">//渐变色环画笔</span><span> </span></span>
- private Paint mCenterPaint;<span><span></span><span class="comment">//中间圆画笔</span><span> </span></span>
- private final int[] mColors;<span><span></span><span class="comment">//渐变色环颜色</span><span></span></span>
- private OnColorChangedListener mListener;//颜色改变回调
- ColorPickerView(Context c, OnColorChangedListener l, int color) {
- super(c);
- mListener = l;
- mColors = new int[] { //渐变色数组
- 0xFFFF0000, 0xFFFF00FF, 0xFF0000FF, 0xFF00FFFF, 0xFF00FF00,
- 0xFFFFFF00, 0xFFFF0000
- };
- Shader s = new SweepGradient(0, 0, mColors, null);
- //初始化渐变色画笔
- mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);