Android 5.x特性概览三

  上节,对Material Design样式作了介绍,这节咱们介绍Palette。android

  在Android发展的长河中,UI愈来愈成为Google的发展重心。上文提到Android 5.x 使用palette来提取颜色,从而使主题动态适用当前页面的色调,因而乎使整个app颜色色调更加和谐统一。app

  Android 内置了几种提取色调的种类,以下所示。
  一、Vibrant(充满活力的)
  二、Vibrant dark(充满活力的黑)
  三、Vibrant light(充满活力的亮)
  四、Muted(柔和的)
  五、Muted dark(柔和的黑)
  六、Muted light(柔和的亮)ide

  开发组可以使用 Palette提供 的 API,可以让咱们从 Bitmap 中获取对应的色调,修改当前的主题色调。  使用 Palette 首先须要在 Android Studio 中引用相关的依赖,在项目列表上点击 F4,而后在Module Setting 的 Dependencies 选项卡中添com.android.support:palette-v7:21.0.2 引用,从新同步项目便可。能够经过传递一个 Bitmap 对象给 Palette,并调用它的 Palette.generate()静态方法或者 Palette.generateAsync()方法来建立一Palette。接下来,就可使用 getter 方法来检索相应的色调,这些色调就是咱们在上面列表中所列出来的色调。spa

能够经过如下不一样的方法来提取不一样色调的颜色。代码分别以下:code

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

而下面这个例子,演示了使用 getDarkVibrantSwatch()方法提取的色调效果色调来改变状态栏的色调,代码以下所示。对象

Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
                R.drawable.test);
        // 建立Palette对象
        Palette.generateAsync(bitmap, new PaletteAsyncListener() {

            @Override
            public void onGenerated(Palette palette) {
                Palette.Swatch swatch = palette.getDarkMutedSwatch();

//                getActionBar().setBackgroundDrawable(
//                        new ColorDrawable(swatch.getRgb()));
                Window window = getWindow();
                window.setStatusBarColor(swatch.getRgb());
            }
        });

  而代码运行效果则是以下所示:blog

  

相关文章
相关标签/搜索