直接上图:

创建seekBarDialog ,并将拾色器集成到dialog 中:

public class MySeekBarDialog extends AlertDialog implements TextWatcher {private SeekBar seekBar;private EditText tView;private TextView titleTxv;  //标题   private TextView msgTxv;    //提示内容文字private TextView positiveTxv;   //确定按钮  private TextView negativeTxv;   //取消按钮  public static int mColor ;public static String mtagName;/* �Զ��幹�캯�����ڳ�ʼ�� */public MySeekBarDialog(Context context) {super(context,R.style.custom_dialog);final View view = getLayoutInflater().inflate(R.layout.dialog_seekbar, null);seekBar = (SeekBar) view.findViewById(R.id.SeekBar01);tView = (EditText)view.findViewById(R.id.textview);titleTxv = (TextView) view.findViewById(R.id.title);  msgTxv = (TextView) view.findViewById(R.id.message); positiveTxv = (TextView) view.findViewById(R.id.positiveButton);  negativeTxv = (TextView) view.findViewById(R.id.negativeButton);  tView.addTextChangedListener(textWatcher);//设置文本编辑的实时监听setView(view);initColorBar();seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {@Overridepublic void onStopTrackingTouch(SeekBar arg0) {}@Overridepublic void onStartTrackingTouch(SeekBar arg0) {}@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)@Overridepublic void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {ColorPickGradient  mColorPickGradient = new ColorPickGradient();float radio = (float)progress / seekBar.getMax();  //获取当前滑动位置mColor = mColorPickGradient.getColor(radio);//采集当前位置的颜色seekBar.getThumb().setColorFilter(mColor, Mode.SRC_ATOP); //设置thumb的颜色//seekBar.getProgressDrawable().setColorFilter(Color.RED, Mode.SRC_ATOP);// mtagName = tView.getText().toString();
//              change.change(progress);
//              tView.setText("͸���ȣ�" + progress + "%");}});}private void initColorBar() {// TODO Auto-generated method stub//设置SeekBar的颜色  ShapeDrawable.ShaderFactory shaderFactory = new ShapeDrawable.ShaderFactory() {  @Override  public Shader resize(int width, int height) {  LinearGradient linearGradient = new LinearGradient(0, 0, width, height,  ColorPickGradient.PICKCOLORBAR_COLORS, ColorPickGradient.PICKCOLORBAR_POSITIONS, Shader.TileMode.REPEAT);  return linearGradient;  }  };  PaintDrawable paint = new PaintDrawable();  paint.setShape(new RectShape());  paint.setCornerRadius(10);  paint.setShaderFactory(shaderFactory);  seekBar.setProgressDrawable(paint);  }@Override  public void setTitle(CharSequence title) {  titleTxv.setText(title);  }  @Override  public void setTitle(int titleId) {  setTitle(getContext().getString(titleId));  }  /** * 设置提示内容文字 * @param msg */  public void setMessage(CharSequence msg){  msgTxv.setText(msg);  }  /** * 设置确定键文字 * @param text */  public void setPositiveText(CharSequence text){  positiveTxv.setText(text);  }  /** * 设置取消键文字 * @param text */  public void setNegativeText(CharSequence text){  negativeTxv.setText(text);  }  /** * 取消键监听器 * @param onClickListener */ public void setNegativeButton(CharSequence text,View.OnClickListener onClickListener){ negativeTxv.setText(text); negativeTxv.setOnClickListener(onClickListener);  }/** * 确定键监听器 * @param*/ public void setPositiveButton(String text, View.OnClickListener onClickListener) {// TODO Auto-generated method stubpositiveTxv.setText(text);positiveTxv.setOnClickListener(onClickListener);  }public void setEditContent(String string) {// TODO Auto-generated method stubif (string ==null)return;tView.setText(string);}public void setEdit(EditText et) {// TODO Auto-generated method stub}@Overridepublic void onPointerCaptureChanged(boolean hasCapture) {// TODO Auto-generated method stub}@Overridepublic void onProvideKeyboardShortcuts(List<KeyboardShortcutGroup> data, Menu menu, int deviceId) {// TODO Auto-generated method stub}private TextWatcher textWatcher = new TextWatcher() {@Overridepublic void onTextChanged(CharSequence s, int start, int before,int count) {//  System.out.println("-1-onTextChanged-->"+ tView.getText().toString() + "<--");}@Overridepublic void afterTextChanged(Editable arg0) {// TODO Auto-generated method stubmtagName = tView.getText().toString();Log.v("mtagName", mtagName);     }@Overridepublic void beforeTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) {// TODO Auto-generated method stub}};@Overridepublic void onTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) {// TODO Auto-generated method stub}@Overridepublic void afterTextChanged(Editable arg0) {// TODO Auto-generated method stub}@Overridepublic void beforeTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) {// TODO Auto-generated method stub}

拾色器的封装接口:

public class ColorPickGradient {  //设置的颜色  public static final int[] PICKCOLORBAR_COLORS = new int[]{0xFFFFFFFF,0xFFFF3030, 0xFFF4A460,  0xFFFFFF00, 0xFF66CD00,  0xFF458B00, 0xFF0000EE,  0xFF912CEE,0xFF000000};  //每个颜色的位置  public static final float[] PICKCOLORBAR_POSITIONS = new float[]{0f, 0.1f, 0.2f, 0.3f, 0.5f, 0.65f,0.8f,0.9f,1f};  private int[] mColorArr = PICKCOLORBAR_COLORS;  private float[] mColorPosition = PICKCOLORBAR_POSITIONS;  public ColorPickGradient(int[] colorArr) {  this.mColorArr = colorArr;  }  public ColorPickGradient() {  }  /** * 获取某个百分比位置的颜色 * @param radio 取值[0,1] * @return */  public int getColor(float radio) {  int startColor;  int endColor;  if (radio >= 1) {  return mColorArr[mColorArr.length - 1];  }  for (int i = 0; i < mColorPosition.length; i++) {  if (radio <= mColorPosition[i]) {  if (i == 0) {  return mColorArr[0];  }  startColor = mColorArr[i - 1];  endColor = mColorArr[i];  float areaRadio = getAreaRadio(radio,mColorPosition[i-1],mColorPosition[i]);  return getColorFrom(startColor,endColor,areaRadio);  }  }  return -1;  }  public float getAreaRadio(float radio, float startPosition, float endPosition) {  return (radio - startPosition) / (endPosition - startPosition);  }  /** *  取两个颜色间的渐变区间 中的某一点的颜色 * @param startColor * @param endColor * @param radio * @return */  public int getColorFrom(int startColor, int endColor, float radio) {  int redStart = Color.red(startColor);  int blueStart = Color.blue(startColor);  int greenStart = Color.green(startColor);  int redEnd = Color.red(endColor);  int blueEnd = Color.blue(endColor);  int greenEnd = Color.green(endColor);  int red = (int) (redStart + ((redEnd - redStart) * radio + 0.5));  int greed = (int) (greenStart + ((greenEnd - greenStart) * radio + 0.5));  int blue = (int) (blueStart + ((blueEnd - blueStart) * radio + 0.5));  return Color.argb(255, red, greed, blue);  }  

主要是知道怎么使用就行了。

本demo根据网络资源修改,侵删!!

demo 在如下的链接中,可以直接运行:

https://download.csdn.net/download/linzihahaha/10768993

Android 养成记-1 --1.3 标签拾色器相关推荐

  1. Android Studio设置颜色拾色器工具Color Picker

    你可能下载过一些获取颜色值的一些小工具,  这种方式获取颜色,需要先切换窗口转跳到桌面,然后打开拾色器小工具程序,然后去拾取颜色: 你可能也知道Android Studio自带一个颜色拾色器,通过下面 ...

  2. Android Studio中如何设置颜色拾色器工具

    Android Studio如何设置颜色拾色器工具Color Picker? 你可能下载过一些获取颜色值的一些小工具, 这种方式获取颜色,需要先切换窗口转跳到桌面,然后打开拾色器小工具程序,然后去拾取 ...

  3. 【Python百日基础系列】Day42 - Dash_DAQ 开关、拾色器、仪表盘、进度条

    文章目录 一.Dash DAQ 安装 二.布尔开关 daq.BooleanSwitch() 2.1 默认开关 2.2 开关颜色 2.3 带标签的开关 2.4 垂直开关 2.5 禁止点击的开关 2.6 ...

  4. 安卓自定义时间选择器_微信小程序拾色器(颜色选择器)组件

    点击上方"极客小寨",选择"置顶公众号" 第一时间关注程序猿(媛)身边的故事 大家好,我是独立开发者东东,如今在web项目中不少地方需要用到颜色选择器,比如设置 ...

  5. UE4拾色器的实现,使用UE4自带的SColorPicker

    我就奇怪了,csdn搞个资源这么难?链接: https://pan.baidu.com/s/1sn70iyT6mp89xmsgUVmDxg 提取码: 2yk2 这总有了吧(2020年7月3日22:14 ...

  6. 一款免安装、多平台兼容的 拾色器(Color Picker)

    文章目录 视频教程 场景需求 场景 需求 Chrome Google DevTools 中的 拾色器 用法 其他浏览器 视频教程 浏览器自带的拾色器ColorPicker使用 场景需求 场景 我是一个 ...

  7. PS学习笔记——拾色器和色彩空间

    作为绘图.修改.色彩调整的基础,拾色器是一个非常重要的工具.如果颜色不存在于画面上或图像内,而是需要人为设定,就需要使用拾色器. 位于工具面板下方,可以看到前景色/背景色选项.或者可以打开色板面板和颜 ...

  8. 拾色器 插件 Farbtastic

    基本用法 1.引入 farbtastic.js 和 farbtastic.css(注:基于jquery的,先把jquery引进去,css包含三张图别忘了设置正确路径,不然只能看到一个方块) <s ...

  9. vue吸管拾色器、利用canvas获取坐标点颜色、canvas获取坐标点颜色图片跨域、图片转base64、colorPicker

    vue吸管拾色器.利用canvas获取坐标点颜色.canvas获取坐标点颜色图片跨域.图片转base64.colorPicker 1.需求:表格中主颜色和次颜色是需要从缩略图上吸取颜色,然后渲染色块, ...

最新文章

  1. 网络编程试卷选择解析
  2. D3引擎用正则运算的方式,实现智能设备APP消息推送
  3. linux ssh无需密码,linux下 ssh 实现无需密码的远程登陆
  4. [Voice communications] 音量的控制
  5. 干货!一文讲清楚电商商品生产和库存的数据分析
  6. 自己写个简易版 PicGo
  7. python自学行吗-没有编程基础,可以自学Python吗?
  8. android jni 多线程,[Android]JNI进阶--线程池
  9. 2020 金山云 面经
  10. 巧记肖特基二极管BAT54C、BAT54S、BAT54A
  11. 有道云笔记 markdown html,有道云笔记Markdown之甘特图
  12. 智课雅思词汇---六、fer是什么意思
  13. 科技爱好者周刊(第 194 期):悲观者正确,乐观者成功
  14. 银行卡系统(面向对象进阶习题)
  15. 科研linux发型版本,[合集]哪些Linux系统科研能用呢 - 优秀的Free OS(Linux)版 - 北大未名BBS...
  16. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccc
  17. YOLO 模型的评估指标——IOU、Precision、Recall、F1-score、mAP
  18. 抖音关键词排名怎么靠前,抖音关键词怎么优化?
  19. 湖仓一体化:铁打的数据仓 流水的数据湖产品
  20. MySQL 内置的监控工具介绍及使用篇

热门文章

  1. python selenium教程.pdf_Python实战:selenium教程(12)
  2. 量具管理-量具生成和二维码打印
  3. 基础SQL语法语句大全(一篇学会所有SQL语句)
  4. Android uni-app 封装原生插件
  5. OJ2105小泉的难题
  6. 人脸识别发展历史介绍 by 山世光
  7. 桌面时钟(JS版本)-electron
  8. 编制计算机程序解决问题的5个步骤,第四章第一节编制计算机程序解决问题
  9. jmeter参数化不起效果
  10. [附源码]Python计算机毕业设计JAVA高校田径运动会管理Django(程序+LW)