【移动应用开发技术】Android Support Palette使用详解_第1页
【移动应用开发技术】Android Support Palette使用详解_第2页
【移动应用开发技术】Android Support Palette使用详解_第3页
免费预览已结束,剩余1页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】AndroidSupportPalette使用详解

使用PaletteAPI选择颜色

良好的视觉设计是app成功所必不可少的,而色彩设计体系是设计的基础构成.Palette包是支持包,能够从图片中解析出突出的颜色,从而帮助你创建出视觉迷人的应用你能够使用Palette包设计布局主题,并把自定义色彩应用到可视化元素中.比如,你可以根据专辑封面,用Palette创建为歌曲创建一个彩色标题卡片,或者当应用背景图片发生改变时调整toolbar颜色.Palette对象给予你权限访问Bitmap图片里面的颜色,同时也根据Bitmap提供了6个主要的颜色,供你填写设计选择.设置依赖Palette为库从版本AndroidSupportLibrary24.0.0引入,可以在build.gradle中按照如下代码添加Palette依赖:

创建Palette对象Palette给予你权限访问图片中的基本颜色,以及重叠文本对应的颜色.可以根据给定资源图片,使用palette设计应用风格,动态改变应用的色彩体系.要创建Palette,首先在从Bitmap中实例化Palette.Builder.然后在生成Palette之前,可以使用Palette.Builder来自定义Palette.生成Palette实例首先,利用Palette的from(Bitmap)方法从Bitmap中生成Palette.Builder.之后利用这个Builder同步或者异步地生成Palette.如果你想在generate()方法被调用的线程中创建Palette对象,使用同步的palette生成.如果你想在不同的线程上异步地生成Palette,就要使用Palette.PaletteAsyncListener.onGenerated方法在Palette生成之后立即访问它.

下面的代码片断展示了两种不同的Palette生成方式:

如果你需要持续为多个有序图片生成多个Palette,考虑将Palette实例缓存起来,以避免减缓UI性能.你也不应该在主线程中创建Palette.自定义Palette

Palette.Builder允许你自定义Palette,通过从结果Palette中选择多少种颜色,Builder使用图片的什么区域生成Palette,Palette中允许什么颜色等.比如,你能够过滤掉黑色,或者,Builder只能够使用图片的上半部分生成Palette.通过Palette.Builder中的下列方法,可以微调Palette尺寸和颜色:提取色彩配置文件基于材料设计标准,Palette库从图片中提供常用的色彩配置文件.每一个文件被一个Target定义,从Bitmap图片中提取的色彩基于饱和度,亮度和分布(Bitmap中表示色彩的像素数)对文件进行评分.对于每一个文件,具有最好分数的颜色定义了给定图片的色彩配置文件.默认情况下,对于给定图片,Palette对象包含16个基本颜色.在生成Palette的时候,你可以通过Palette.Builder自定义颜色数.提取更多的色彩对于每个色彩配置文件提供了更多的潜在匹配,但也引起Palette.Builder花费更久的时间来生成Palette.Palette库尝试提取以下6个色彩配置文件:每一个Palette.get<Profile>Color()方法返回了Palette中的颜色,而每一个Palette关联了一个特定的配置文件,其中,<Profile>被以上6个色彩配置文件名取代.比如,获取DarkVibrant色彩配置文件的方法是getDarkVibrantProfile().因为不是所有的图片都会包含所有的色彩配置文件,所以,你必须也提供一个默认颜色返回.使用样本创建色彩体系Palette对象也为每一个色彩配置文件生成Palette.Swatch对象.Palette.Swatch对象包含对象的配置文件关联的颜色和颜色的像素分布.Swatch拥有额外的方法来访问色彩配置文件更多的信息,比如HSL值,像素分布等.你能够通过使用getBodyTextColor()和getTitleTextColor()来生成更多繁杂的色彩体系和应用主题.这些方法返回的颜色恰好配合Swatch的颜色使用.每一个Palette.get<Profile>Swatch()方法返回了关联特定配置文件的Swatch.尽管get<Profile>Swatch()方法并不默认值参数,如果图片中并不存在特定的某个配置文件,该方法会返回null.由此,你应该在使用Swatch之前判断它是否为空.比如,下面的代码从Palette中获取了标题文本颜色,并检查了VibrantSwatch是否为空:要访问Palette中的所有颜色,getSwatches()方法返回了包含图片中生成的所有Swatch的列表,包

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论