java palette_Java Palette.getDarkVibrantColor方法代码示例

import android.support.v7.graphics.Palette; //导入方法依赖的package包/类

private Target getLightThemeTarget() {

return new Target() {

@Override

public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {

streamerImage.setImageBitmap(bitmap);

Palette palette = Palette.from(bitmap).generate();

int defaultColor = Service.getColorAttribute(R.attr.colorPrimary, R.color.primary, getBaseContext());

int defaultDarkColor = Service.getColorAttribute(R.attr.colorPrimaryDark, R.color.primaryDark, getBaseContext());

int vibrant = palette.getVibrantColor(defaultColor);

int vibrantDark = palette.getDarkVibrantColor(defaultColor);

int vibrantLight = palette.getLightVibrantColor(defaultColor);

int muted = palette.getMutedColor(defaultColor);

int mutedDark = palette.getDarkMutedColor(defaultColor);

int mutedLight = palette.getLightMutedColor(defaultColor);

Palette.Swatch swatch = null;

if (vibrant != defaultColor) {

swatch = palette.getVibrantSwatch();

} else if (vibrantDark != defaultColor) {

swatch = palette.getDarkVibrantSwatch();

} else if (vibrantLight != defaultColor){

swatch = palette.getLightVibrantSwatch();

} else if (muted != defaultColor) {

swatch = palette.getMutedSwatch();

} else if (mutedDark != defaultColor) {

swatch = palette.getDarkMutedSwatch();

} else {

swatch = palette.getLightMutedSwatch();

}

if (swatch != null) {

float[] swatchValues = swatch.getHsl();

float[] newSwatch = {swatchValues[0], (float) 0.85, (float) 0.85};

float[] newSwatchComposite = {(swatchValues[0] + 180) % 360, newSwatch[1], newSwatch[2]};

float[] newSwatchDark = {newSwatch[0], newSwatch[1], (float) 0.6};

int newColorDark = Color.HSVToColor(newSwatchDark);

int newColor = Color.HSVToColor(newSwatch);

int compositeNewColor = Color.HSVToColor(newSwatchComposite);

int primaryColor = Service.getBackgroundColorFromView(toolbar, defaultColor);

int primaryColorDark = Service.getBackgroundColorFromView(mTabs, defaultDarkColor);

Service.animateBackgroundColorChange(toolbar, newColor, primaryColor, COLOR_FADE_DURATION);

Service.animateBackgroundColorChange(additionalToolbar, newColor, primaryColor, COLOR_FADE_DURATION);

Service.animateBackgroundColorChange(mTabs, newColorDark, primaryColorDark, COLOR_FADE_DURATION);

mFab.setBackgroundTintList(ColorStateList.valueOf(compositeNewColor));

mTabs.setSelectedTabIndicatorColor(compositeNewColor);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

Window window = getWindow();

window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

window.setStatusBarColor(newColorDark);

}

}

}

@Override

public void onBitmapFailed(Drawable errorDrawable) {}

@Override

public void onPrepareLoad(Drawable placeHolderDrawable) {}

};

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值