Android5.0Palette

本文介绍如何利用Palette API从Bitmap中提取颜色,动态调整Android应用的主题色调,实现整体应用颜色协调一致。通过创建Palette对象,获取Vibrant、Vibrantdark、Vibrantlight、Muted、Muteddark、Mutedlight等不同类型的色调,并将其应用于ActionBar、Toolbar、StatusBar等组件。演示了一个简单的Demo,展示了如何在MainActivity中应用此功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、需要的jar包

1、android-support-v4.jar

2、android-support-v7-palette.jar

注意:都要变成奶瓶

2、定义

使用 Palette 的API,能够让我们从 Bitmap 中获取对应的色调,修改当前的主题色调。

在 Android 的版本发展中,UI 越来越成为 Google 的发展重心。这次的 Android 5.X 创新地

使用 Palette 来提取颜色,从而让主题能够动态适应当前页面的色调,做到整个 App 颜色基调

和谐统一。

3、android中定义的色调

Android 内置了几种提取色调的种类

1、Vibrant(充满活力的)

2、Vibrant dark(充满活力的黑)

3、Vibrant light(充满活力的亮)

4、Muted(柔和的)

5、Muted dark(柔和的黑)

6、Muted light(柔和的亮)

4、Demo

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bitmap bitmap =BitmapFactory.decodeResource(getResources(),
                       R.drawable.demo);
<span style="white-space:pre">	</span>// 创建Palette 对象
        Palette.generateAsync(bitmap,newPalette.PaletteAsyncListener() {
                   @Override
                   publicvoid onGenerated(Palette palette) {
                       //通过 Palette 来获取对应的色调
                       Palette.Swatchvibrant =palette.getDarkVibrantSwatch();
                       //将颜色设置给相应的组件
                       getActionBar().setBackgroundDrawable(newColorDrawable(vibrant.getRgb()));
       //或者 toolbar.setBackground(newColorDrawable(vibrant.getRgb()));
                       Windowwindow = getWindow();
                       window.setStatusBarColor(vibrant.getRgb());
                   }
<span style="white-space:pre">	</span>});
}


 

5、提取颜色的方法

通过以下方法来提取不同色调的颜色。

palette.getVibrantSwatch ();
palette.getDarkVibrantSwatch ();
palette.getLightVibrantSwatch ();
palette.getMutedSwatch ();
palette.getDarkMutedSwatch ();
palette.getLightMutedSwatch ();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值