Android L(API Level 21)のandroid.support.v7.graphics.Palette クラスを使用すると、指定した画像から、画像に使われている色を解析し、いい感じのパレット(6色分の色値)を計算してくれるようです。
取得した色をテキストやグレーアイコンに適用することで、画像にマッチした配色ができそうです(例えば、下図のフラミンゴだと、フラミンゴの色から、ピンク、赤、暗めの紺色の色などが Palette クラスから返される)。
Palette 呼び出し方
Palette palette = Palette.generate(photo); // photo は Bitmap // get○○○Color()で任意のパレット色が取得できる // VibrantColor palette.getLightVibrantColor().getRgb(); // 明るい palette.getVibrantColor().getRgb(); palette.getDarkVibrantColor().getRgb(); // 暗い // MutedColor palette.getLightMutedColor().getRgb(); // 明るい palette.getMutedColor().getRgb(); palette.getDarkMutedColor().getRgb(); // 暗い
Google I/O 2014 Material Witness で紹介されていたデモアプリ
※デモアプリのソースコードは、https://github.com/romainguy/google-io-2014
※キャプチャは、取得できるパレット色の名前と値を表示するように手を加えています
どんな風に色を選択しているか興味深く、Android L のソースコード公開が待ち遠しいです。
