怎么在android中使用面板调色板

  介绍

本篇文章为大家展示了怎么在android中使用面板调色板,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

面板可以提取的颜色:

<李>

活力(有活力的)

<李>

充满活力的黑(有活力的暗色)

<李>

充满活力的光(有活力的亮色)

<李>

温和(柔和的)

<李>

沉默黑暗(柔和的暗色)

<李>

柔和的灯光(柔和的亮色)

<强>使用方法:模块的构建。gradle中引用

compile  & # 39; com.android.support: palette-v7:25.3.1& # 39;

<强>使用步骤:

1。获取调色板对象,也就是图像调色板

2。获取从图像调色板生成的色样

3。从色样中提取相应颜色

<强> 1。获取调色板对象,也就是图像调色板

获取调色板对象有同步和异步两种方式,建议使用异步获取调色板对象

,//同步   ,Palette  p =, Palette.from(位图).generate ();      ,//异步的   ,Palette.from(位图).generate (new  PaletteAsyncListener (), {   ,,public  void  onGenerated (Palette  p), {   ,,,,//Use  generated 实例   ,,}   以前,});

<强> 2。获取从图像调色板生成的色样

可以获取到六种色样,但是有的时候获取不到对应的色样对象,必须注意非空判断。

Palette.Swatch  vibrant =, palette.getVibrantSwatch();//有活力的      Palette.Swatch  vibrantDark =, palette.getDarkVibrantSwatch();//有活力的,暗的色      Palette.Swatch  vibrantLight =, palette.getLightVibrantSwatch();//有活力的,亮的色      Palette.Swatch  muted =, palette.getMutedSwatch();//柔和的      Palette.Swatch  mutedDark =, palette.getDarkMutedSwatch();//柔和的,暗的色      Palette.Swatch  mutedLight =, palette.getLightMutedSwatch();//柔和的,亮色

<强> 3。从色样中提取相应颜色

通过getRgb()可以得到最终的颜色值并应用到UI中.getBodyTextColor()和getTitleTextColor()可以得到此颜色下文字适合的颜色,这样很方便我们设置文字的颜色,使文字看起来更加舒服。

swatch.getPopulation():,样本中的像素数量   swatch.getRgb():,颜色的篮板值   swatch.getHsl():,颜色的高速逻辑值   swatch.getBodyTextColor():主体文字的颜色值   swatch.getTitleTextColor():,标题文字的颜色值

演示的代码中没有对获取到的色样对象进行非空判断,注意一定要加上非空判断

public  class  MainActivity  extends  AppCompatActivity  {   private 才能static  final  String  TAG =, MainActivity.class.getName ();   private 才能LinearLayout  line1 line2, line3, line4, line5, line6;   private 才能TextView  tv1_1 tv1_2, tv2_1, tv2_2, tv3_1, tv3_2, tv4_1, tv4_2, tv5_1, tv5_2, tv6_1, tv6_2;   private 才能;List< LinearLayout>, bgs =, new  ArrayList<在();   private 才能;List< TextView>, bodyTexts =, new  ArrayList<在();   private 才能;List< TextView>, titleTexts =, new  ArrayList<在();   private 才能;List< Palette.Swatch>, swatchs =, new  ArrayList<在();   @Override才能   protected 才能;void  onCreate (Bundle  savedInstanceState), {   ,,,super.onCreate (savedInstanceState);   ,,,setContentView (R.layout.activity_main);   ,,,ImageView  img =, (ImageView), findViewById (R.id.img);   ,,,initView ();   ,,,Bitmap  Bitmap =, ((BitmapDrawable) img.getDrawable ()) .getBitmap ();   ,,,if  (bitmap ==, null) {   ,,,,,返回;   ,,,}   ,,,Palette.from(位图).generate(听众);      ,,}      private 才能Palette.PaletteAsyncListener  listener =, new  Palette.PaletteAsyncListener (), {   ,,@Override   ,,,public  void  onGenerated (Palette 面板),{   ,,,,,if  (palette  !=, null) {   ,,,,,,,Palette.Swatch  vibrant =, palette.getVibrantSwatch();//有活力的   ,,,,,,,Palette.Swatch  vibrantDark =, palette.getDarkVibrantSwatch();//有活力的,暗的色   ,,,,,,,Palette.Swatch  vibrantLight =, palette.getLightVibrantSwatch();//有活力的,亮的色   ,,,,,,,Palette.Swatch  muted =, palette.getMutedSwatch();//柔和的   ,,,,,,,Palette.Swatch  mutedDark =, palette.getDarkMutedSwatch();//柔和的,暗的色   ,,,,,,,Palette.Swatch  mutedLight =, palette.getLightMutedSwatch();//柔和的,亮的色   ,,,,,,,swatchs.clear ();   ,,,,,,,swatchs.add(活力);swatchs.add (vibrantDark); swatchs.add (vibrantLight);   ,,,,,,,swatchs.add(沉默);swatchs.add (mutedDark); swatchs.add (mutedLight);   ,,,,,,,显示();   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在android中使用面板调色板