android - 如何根据前景图像在android中动态更改状态栏的颜色?
问题描述
我想实现与我们在 WhatsApp 中看到的相同的功能,同时看到一个人的个人资料,状态栏的颜色会根据图像的颜色而变化。
解决方案
它叫做 Pallete,使用下面的函数,只需传递你的位图图像
private void setUpPalette(Bitmap bitmap) {
// you passed your Bitmap image;
Palette.from(bitmap).
generate(new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
if (palette != null) {
//default color is yellow
// set the color to toolbar, whatever
int extColor = palette.getVibrantColor(ContextCompat.getColor(MainActivity.this, R.color.yellow));
if (getWindow() != null) {
getWindow().setStatusBarColor(ContextCompat.getColor(this, extColor));
}
} else {
if (getWindow() != null) {
getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.fail_safe));
}
}
}
});
}
推荐阅读
- javascript - 在 try 块中分配值的最佳方法
- css - CSS - 获取复选框值
- go - 如何在高并发系统中创建全局计数器
- git - 远程:匿名访问
/ .git 拒绝。致命:'https://github.com/ 的身份验证失败 / .git/' - android - 如何在滚动时使用回收器视图识别部分适配器的子项的位置
- android - 科尔多瓦构建 android - aapt 超时
- python - 预期缩进块错误(django)
- javascript - 使用 jQuery、Ajax 和 PHP 的动态依赖选择框
- java - 使用java从文本中删除url的问题
- python - 使用python在Excel中查找具有不同位置的重复值