Androidでカラーピッカーを作ろう
HSVって?
HSV色空間 - Wikipedia http://ja.wikipedia.org/wiki/HSV%E8%89%B2%E7%A9%BA%E9%96%93
- Hue - 色相
- Saturation - 彩度
- Value - 明度
の3つで表す色の指定方法です。
RGBの親戚みたいなものです。
wikipedia読むとなにやら難しい事書いてあります。
ぼくはあんまりよんでません。
カラーピッカーを作りたい
wikipediaに書いてある事をぜんぶ読まなくても
AndroidにはHSV⇔RGBのメソッドが用意されているんで読まなくてもいいです。
理解するのは値の範囲くらい
色相 | 0〜360 |
彩度 | 0%〜100% |
明度 | 0%〜100% |
使うメソッドはColor#HSVToColor(float[])てやつ
Color | Android Developers http://developer.android.com/reference/android/graphics/Color.html#HSVToColor(float[])
配列にHSVの値を入れたらRGBを返してくれるメソッドです。
色相バーを作ろう
色相の値を1ずつずらして色を並べれば色相バーが作れます。
コード
import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.Bitmap.Config; import android.os.Bundle; import android.widget.ImageView; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 画像を作る int height = 60; int width = 360; Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888); int color; // 色を設定する for (int i = 0; i < 360; i++) { // 色相に対応する色を取得する color = Color.HSVToColor(new float[] { i, 1, 1 }); // 画像に色を設定する for (int j = 0; j < height; j++) { bitmap.setPixel(i, j, color); } } // イメージをActivityに表示する ImageView imageView = new ImageView(this); imageView.setImageBitmap(bitmap); setContentView(imageView); } }
彩度や明度
色相とほぼ同じコードで作れると思います。
がんばって!
カラーピッカー
私はこんな感じのカラーピッカー作りました。
ソースはこちら
http://tomorrowkey.googlecode.com/svn/trunk/ColorPallet
すぐ動くサンプルはこちら
http://tomorrowkey.googlecode.com/svn/trunk/ColorPallet/bin/ColorPallet.apk
署名してません。