/** * 920 Text Editor is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * 920 Text Editor is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with 920 Text Editor. If not, see <http://www.gnu.org/licenses/>. */ package com.jecelyin.util; import android.app.Dialog; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.jecelyin.editor.R; import com.jecelyin.widget.ColorPickerView; public class ColorPicker extends Dialog { public interface OnColorChangedListener { void onColorChanged(String mKey, String color); } private OnColorChangedListener mListener; private int mDefaultColor; private String mKey; private String mTitle; private ColorPickerView mColorView; private EditText colorEditText; public ColorPicker(Context context, OnColorChangedListener listener, String key, String title, int defaultColor) { super(context); mTitle = title; mListener = listener; mKey = key; mDefaultColor = defaultColor; } /** * 转换整数颜色值为字符串格式:#ffff00 * @param color * @return 注,因为android前2位表示透明值,所以可以截取掉,保留6位即可 */ public static String getColor(int color) { return "#"+Integer.toHexString(color).substring(2); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(new ColorPickerView(getContext(), l, mInitialColor, mDefaultColor)); setContentView(R.layout.color_picker); setTitle(mTitle); colorEditText = (EditText) findViewById(R.id.color_text); colorEditText.setText(getColor(mDefaultColor)); mColorView = (ColorPickerView) findViewById(R.id.color_picker_view); mColorView.setColor(mDefaultColor); mColorView.setOnColorChangedListener(mOnColorChangedListener); Button ok = (Button)findViewById(R.id.ok); Button cancel = (Button)findViewById(R.id.cancel); ok.setOnClickListener(onOkClickListener); cancel.setOnClickListener(onCancelClickListener); } private View.OnClickListener onOkClickListener = new View.OnClickListener() { @Override public void onClick(View v) { String color = colorEditText.getText().toString().trim(); if("".equals(color)) return; try { Color.parseColor(color); } catch(Exception e) { Toast.makeText(ColorPicker.this.getContext(), R.string.invalid_color, Toast.LENGTH_LONG).show(); return ; } mListener.onColorChanged(mKey, color); dismiss(); } }; private View.OnClickListener onCancelClickListener = new View.OnClickListener() { public void onClick(View v) { dismiss(); } }; private OnColorChangedListener mOnColorChangedListener = new OnColorChangedListener() { public void onColorChanged(String key, String color) { colorEditText.setText(color); } }; }