MaterialDesign之Palette的使用

MaterialDesign之Palette的使用

2023年7月13日发(作者:)

MaterialDesign之Palette的使⽤Palette,即调⾊板, 作⽤是从图⽚中提取相应的⾊调,然后把这些提取的⾊调赋给相应的组件,使界⾯看起来更加优雅.⼀、Palette的使⽤1、添加依赖compile 't:palette-v7:25.3.1'2、⽣成Palette对象同步:r bulider = (bitmap);Palette palette = te();异步: r bulider = (bitmap); te(new eAsyncListener() { @Override public void onGenerated(Palette palette) { } });异步获取到的Palette对象会回调在 onGenerated⽅法的参数中这⾥需要⼀个Bitmap对象,即我们要提取颜⾊图⽚的位图对象.如果图⽚过⼤时,可能会阻塞主线程,所以更倾向于使⽤异步⽅法.3、获取样本这⾥可以从位图中获取6种⾊调的样本 s1 = rantSwatch();//充满活⼒的样本 s2 = kVibrantSwatch(); //充满活⼒的暗⾊样本 s3 = htVibrantSwatch(); //充满活⼒的亮⾊样本 s4 = edSwatch(); //柔和的样本 s5 = kMutedSwatch(); //柔和的暗⾊样本 s6 = htMutedSwatch(); //柔和的亮⾊样本具体使⽤哪种样本根据实际需求.这⾥需要注意的是,有时候我们会获取不到对象,返回⼀个null值,所以实际使⽤时需要判断是否为null.4、样本中提取信息返回该样本的像素的总数int population = ulation();返回⼀个 HSL颜⾊值float[] hsl = ();返回⼀个 RGB 颜⾊值int rgb = ();返回⼀个适合做内容体颜⾊的颜⾊值int bodyTextColor = yTextColor();返回⼀个适合做标题颜⾊的颜⾊值int titleTextColor = leTextColor();5、过时⽅法早期是直接通过generate( )⽣成Palette对象的同步:Palette p = te(Bitmap bitmap);Palette p = te(Bitmap bitmap, int numColors);异步:teAsync(bitmap, new eAsyncListener() { @Override public void onGenerated(Palette palette) { }});teAsync(bitmap, 24, new eAsyncListener() { @Override public void onGenerated(Palette palette) { }});

这⾥可以设置palette的numColors,numColors越⼤,会增加计算的时间,⽽越⼩,可以选择的⾊彩也越⼩,不设置默认是16.⼆、Demo⼆、Demo布局⽂件

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信