Android 圆形颜色拾取器代码,android 颜色拾取控件 ColorPickerDialog
效果:
源码:
package com.dwood.paintdemo;
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;
public
ColorPickerDialog(Context context, String title,
OnColorChangedListener
listener) {
this(context, Color.BLACK, title,
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.5f);
int width = (int)
(manager.getDefaultDisplay().getWidth() * 0.7f);
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;//View宽
private float r;//色环半径(paint中部)
private float centerRadius;//中心圆半径
private boolean downInCircle =
true;//按在渐变环上
private boolean downInRect;//按在渐变方块上
private boolean highlightCenter;//高亮
private boolean highlightCenterLittle;//微亮
public ColorPickerView(Context
context, int height, int width) {
super(context);
this.mHeight
= height - 36;
this.mWidth =
width;
setMinimumHeight(height
- 36);
setMinimumWidth(width);
//渐变色环参数
mCircleColors = new int[] {0xFFFF0000,
0xFFFF00FF, 0xFF0000FF,
0xFF00FFFF,
0xFF00FF00,0xFFFFFF00, 0xFFFF0000};
Shader s = new SweepGradient(0, 0, mCircleColors,
null);
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setShader(s);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeWidth(50);
r = width / 2 * 0.7f - mPaint.getStrokeWidth() * 0.5f;
Android 圆形颜色拾取器代码,android 颜色拾取控件 ColorPickerDialog相关推荐
- android建立电话拨号器代码,Android编写电话拨号器
一.实现步骤 1.需要创建拨号意图 Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData ...
- Android之RemoteViews篇上————通知栏和桌面小控件
Android之RemoteViews篇上----通知栏和桌面小控件 一.目录 文章目录 Android之RemoteViews篇上----通知栏和桌面小控件 一.目录 二.RemoteViews的概 ...
- android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题
50_样式与主题 android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题 2013/5/12 50_样式与主题 ----------------- android样式和主题(st ...
- android menu item 显示,Android 如何通过menu id来得到menu item 控件 .
Android 如何通过menu id来得到menu item 控件 . (2012-07-21 06:43:31) 标签: android 如何 杂谈 Android 如何通过menu id来得到m ...
- 《深入理解Android 卷III》第六章 深入理解控件(ViewRoot)系统
<深入理解Android 卷III>即将发布,作者是张大伟.此书填补了深入理解Android Framework卷中的一个主要空白,即Android Framework中和UI相关的部分. ...
- 【Android自定义View实战】之自定义评价打分控件RatingBar,可以自定义星星大小和间距...
[Android自定义View实战]之自定义评价打分控件RatingBar,可以自定义星星大小和间距
- html设置控件位置大小,下面那个代码段设置myButton控件显示在HTML页左上角100px的位置 - 问答库...
问题: [多选] 下面那个代码段设置myButton控件显示在HTML页左上角100px的位置?() A . B . C . D . 调度例行会议形式有什么() 生产平衡会. 事故分析会. 调度专业会 ...
- android swf 播放器代码,Android Flash swf播放器源码(2016),技术稳定可以商用—— BY softboy...
Android Flash swf播放器源码(2016) 为什么说标题加上2016? 其实不是什么新技术,因为android4.1之后的android 浏览器内核版本发生了变化导致 Adobe 的Fl ...
- android swf 播放器代码,Android Flash swf播放器源码(2019)
Android Flash swf播放器源码(2019) 为什么说标题加上2019? 其实不是什么新技术,因为android4.1之后的android 浏览器内核版本发生了变化导致 Adobe 的Fl ...
- android 圆形图片设置蒙层,Android引导蒙层,安卓新手引导图,引导图层,支持椭圆,圆形,矩形多种形状,一行代码快速搞定-Go语言中文社区...
新手引导视图,初次打开页面时显示. 支持圆形,椭圆,矩形等多种图形 提示部分支持图片和文字提示 先看效果图 使用步骤. 使用起来特别简单,只需要把GuideView这个类复制到你的项目中就可以了 pa ...
最新文章
- Java Jtree渲染叶子实现可以添加swing组件
- ERP选型技巧之“三不要一要”
- 小而美的个人博客——前端——about
- 【竞赛相关】Kaggle活跃竞赛(12月汇总)
- python基础===使用switch方法,减少使用if语句
- H2内嵌数据库的使用
- 【转】如何修改Chrome缓存目录的地址
- wx.navigateTo跳转首页无效
- 微服务java模块内存管理_Java 9模块服务
- 不可思议的素数(上)(文末送书)
- U811.1接口EAI系列之六--物料上传--VB语言
- 公共端接正极还是负极_电动车通过增加电池来提高续航能力,到底是并联好还是串联好?...
- Python: 字符串
- LabView常用快捷键
- java自行车(java自行车)
- Thunderbolt3 方案介绍及应用案例介绍
- Linux网络服务——DHCP
- codeforces 1635E-Cars (二分图染色+拓扑排序)
- jsp027ssm洗衣店管理系统
- 3d渲染软件twinmotion2021中文版