新しくSupport Libraryに追加されたPalette Libraryを使ってみました。
Palette LibraryはBitmapを渡すと、その画像に合う背景色、タイトルカラー、テキストカラーを返してくれます。
導入
Gradleを使っている場合はbuild.gradleにPalette Libraryに追加します。
compile 'com.android.support:palette-v7:21.0.0'
使用方法
Palette.generateとPalette.generateAsyncの2種類がありますが、適している方を使います。
Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
public void onGenerated(Palette palette) {
if (palette != null) {
Palette.Swatch vibrantSwatch = palette.getVibrantSwatch();
if (vibrantSwatch != null) {
mVibrantContaienr.setBackgroundColor(vibrantSwatch.getRgb());
mVibrantTitleView.setTextColor(vibrantSwatch.getTitleTextColor());
mVibrantText.setTextColor(vibrantSwatch.getBodyTextColor());
}
}
}
});
本当に渡すだけでいい感じの色を選んでくれます。
SwatchはVibrant(鮮やか)とMuted(落ち着いた)、さらにそれぞれのLightとDarkがあります。
デザインに合うものを選べばいいと思います。
また、色情報が見つからない場合、Swatchにnullが返ってくるので、返ってこなかった場合のことも考えておく必要はありそうです。
内容がないクソみたいなサンプルも作ってあるので、よかったら見てみてください。
https://github.com/kazutoyo/PaletteSample