Palette是Android.support.v7.graphics包中定义的用于提取背景中的颜色的类,该类用final修饰,不可被继承。
在使用Palette前,需要在build.gradle中加入依赖:
dependencies{
compile 'com.android.support:palette-v7:23.1.1'
}
Palette可提取的颜色按类型可分为以下几种:
- Vibrant ——动感的
- Vibrant Dark ——动感的亮
- Vibrant Light ——动感的暗
- Muted ——柔和的
- Muted Dark ——柔和的亮
- Muted Light ——柔和的暗
Palette采用工厂模式(Builder)创建调色板对象,如下所示:
Palette.Builder builder = Palette.from(BitmapFactory.decodeResource(getResources(), R.mipmap.picture))
下面将按照Palette的取色类型提取相应颜色:
builder.generate(new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
Palette.Swatch vibrant = palette.getVibrantSwatch()
if (vibrant != null) {
TextView textView = (TextView) findViewById(R.id.vibrant)
textView.setBackgroundColor(vibrant.getBodyTextColor())
}
Palette.Swatch vibrantlight = palette.getLightVibrantSwatch()
if (vibrantlight != null) {
TextView textView = (TextView) findViewById(R.id.vibrant_light)
textView.setBackgroundColor(vibrantlight.getBodyTextColor())
}
Palette.Swatch vibrantdark = palette.getDarkVibrantSwatch()
if (vibrantdark != null) {
TextView textView = (TextView) findViewById(R.id.vibrant_dark)
textView.setBackgroundColor(vibrantdark.getBodyTextColor())
}
Palette.Swatch muted = palette.getMutedSwatch()
if (muted != null) {
TextView textView = (TextView) findViewById(R.id.muted)
textView.setBackgroundColor(muted.getBodyTextColor())
}
Palette.Swatch mutedDark = palette.getDarkMutedSwatch()
if (mutedDark != null) {
TextView textView = (TextView) findViewById(R.id.muted_dark)
textView.setBackgroundColor(mutedDark.getBodyTextColor())
}
Palette.Swatch mutedLight = palette.getLightMutedSwatch()
if (mutedLight != null) {
TextView textView = (TextView) findViewById(R.id.muted_light)
textView.setBackgroundColor(mutedLight.getBodyTextColor())
}
}
})
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
展示的图片及提取的颜色样本(左下角依次排列)见下图:
从左至右依次为Vibrant (动感的)、Vibrant Dark (动感的亮)、Vibrant Light (动感的暗)、Muted (柔和的)、Muted Dark (柔和的亮)、Muted Light (柔和的暗)