Android Color Picker作成
AndroidでColorPickerDialogを作成した時のメモ◆ 概要
HSV色空間のColorPickerDialog 色の選択を行う
HSVモデル・・・
・色相(Hue) 0~360の範囲
・彩度(Saturation・Chroma) 0~100%の範囲
・明度(Value・Lightness・Brightness) 0~100%の範囲
上記3つの成分からなる色空間
◆ Androidでのグラデーション
Androidでグラデーションを描くには、次のクラスを使う
・LinearGradient 直線方向のグラデーションを描く
・RadialGradient 円環のグラデーションを描く
・SweepGradient 色の変化方向が円環になっているグラデーションを描くcolorToHSV
それぞれShaderクラスを継承していて以下の様に使用する
Shader s = new LinearGradient(・・・);
Paint p = new Paint();
p.setShader(s);
1. LinearGradient
LinearGradient(float x0, float y0, float x1, float y1,
int[] colors, float[] positions, Shader.TileMode tile)
x0 : 線形グラデーションのX方向開始位置
y0 : 線形グラデーションのY方向開始位置
x1 : 線形グラデーションのX方向終了位置
y1 : 線形グラデーションのY方向終了位置
colors : 設定された色(複数)によって分散される
positions : colorsで設定された色の分散位置 ※nullを指定すると均等に分散
tile :
CLAMP : 飛び出した場合は, edgeのカラーでいきます
MIRROR : 繰り返しだけど, mirror配置にします
REPEAT : 繰り返し
2. RadialGradient 今回未使用
3. SweepGradient
public SweepGradient (float cx, float cy, int[] colors, float[] positions)
cx : 中心X位置
cy : 中心Y位置
colors : 分散させる色(複数)
positions : colorsで設定された色の分散位置 ※nullを指定すると均等に分散
Color#colorToHSVメソッドの使い方
public static void colorToHSV (int color, float[] hsv)
第一引数に指定されたargbの色をHSVに変換する
使う時はfloat[3]を第二引数へ設定する
処理を抜けた後
・hsv[0] には 色相(Hue)が0~360の範囲で入っている
・hsv[1] には 彩度(Saturation・Chroma)が0~1の範囲で入ってる
・hsv[2] には 明度(Value・Lightness・Brightness)が0~1の範囲で入ってる
作成したColorPickerDialogはこちらで公開しています
0 件のコメント:
コメントを投稿