先上图
1.测试界面
2. 调色板对话框
3.改变字体颜色
package com.xsl.colorpicker;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.Shader;
import android.graphics.SweepGradient;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
public class ColorPickerDialog extends Dialog {
private final boolean debug = true;
private final String TAG = "ColorPicker";
Context context;
private String title; //标题
private int mInitialColor; //初始颜色
private OnColorChangedListener mListener;
/**
* 初始颜色黑色
* @param context
* @param title 对话框标题
* @param listener 回调
*/
public ColorPickerDialog(Context context, String title,
OnColorChangedListener listener) {
this(context, Color.BLACK, title, listener);
}
/**
*
* @param context
* @param initialColor 初始颜色
* @param title 标题
* @param listener 回调
*/
public ColorPickerDialog(Context context, int initialColor,
String title, OnColorChangedListener listener) {
super(context);
this.context = context;
mListener = listener;
mInitialColor = initialColor;
this.title = title;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WindowManager manager = getWindow().getWindowManager();
int height = (int) (manager.getDefaultDisplay().getHeight() * 0.38f); //0.5
int width = (int) (manager.getDefaultDisplay().getWidth() * 0.5f); //0.7
ColorPickerView myView = new ColorPickerView(context, height, width);
setContentView(myView);
setTitle(title);
}
private class ColorPickerView extends View {
private Paint mPaint; //渐变色环画笔
private Paint mCenterPaint; //中间圆画笔
private Paint mLinePaint; //分隔线画笔
private Paint mRectPaint; //渐变方块画笔
private Shader rectShader; //渐变方块渐变图像
private float rectLeft; //渐变方块左x坐标
private float rectTop; //渐变方块右x坐标
private float rectRight; //渐变方块上y坐标
private float rectBottom; //渐变方块下y坐标
private final int[] mCircleColors; //渐变色环颜色
private final int[] mRectColors; //渐变方块颜色
private int mHeight; //View高
private int mWidth;