`

android5.x之Palette调色板

阅读更多
Palette类可以分析一张图片,取出这张图片的特征色,然后为View中的文字,背景等设置颜色,让整个界面在色调上看上去更和谐更美观。

使用Palette,首先要导入sdk\extras\android\support\v7\palette



然后在你的工程中引入Palette工程




接下来就可以使用了
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.gg1);
				
		Palette palette=Palette.from(bitmap).generate();
		
		//暗鲜艳色
		int darkVibrantColor=palette.getDarkVibrantColor(android.R.color.holo_blue_dark);
		//暗柔和的颜色
		int darkMutedColor=palette.getDarkMutedColor(android.R.color.holo_orange_dark);
		
		//亮鲜艳色(淡色)
		int lightVibrantColor=palette.getLightVibrantColor(android.R.color.holo_blue_bright);
		//亮柔和色(淡色)
		int lightMutedColor=palette.getLightMutedColor(android.R.color.holo_orange_light);
		
		//柔和色
		int mutedColor=palette.getMutedColor(android.R.color.holo_red_dark);
		//鲜艳色
		int vibrantColor=palette.getVibrantColor(android.R.color.holo_red_light);
		
		final TextView tv_0 = (TextView) findViewById(R.id.tv_0);
		final TextView tv_1 = (TextView) findViewById(R.id.tv_1);
		final TextView tv_2 = (TextView) findViewById(R.id.tv_2);
		tv_0.setBackgroundColor(darkVibrantColor);
		tv_0.setTextColor(lightVibrantColor);
		tv_1.setBackgroundColor(darkMutedColor);
		tv_1.setTextColor(lightMutedColor);
		tv_2.setBackgroundColor(mutedColor);
		tv_2.setTextColor(vibrantColor);
	}

}


效果图:


Palette还有个异步的方法:
Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {
			
			@Override
			public void onGenerated(Palette palette) {
				// TODO Auto-generated method stub
				
			}
		});


PS:不同版本的Palette可能用法不同,我用的是最新的Android Support Library 22.2

  • 大小: 9.5 KB
  • 大小: 31.6 KB
  • 大小: 47.4 KB
分享到:
评论

相关推荐

    Android 5.X 新特性详解(一)——主题、Palette、阴影、着色和裁剪

    在Android 5.X系列,谷歌引入了一种全新的设计语言——Material Design,这是一次重大更新,旨在提升用户体验,提供更加现代、直观且富有表现力的界面。本篇将重点解析Material Design中的几个关键新特性:主题...

    vc调色板原理编程.rar_VC调色板 原理 编程_调色板

    在计算机图形学中,调色板(Palette)是一种在8位色彩或更低色彩深度系统中管理颜色的方法。在这些系统中,每个像素只能表示256种不同的颜色,因此需要一个调色板来映射这些索引到实际的颜色。本教程主要针对VC++...

    Palette:展示 android.support.v7.graphics.Palette 的示例应用程序

    调色板展示android.support.v7.graphics.Palette示例应用程序。 解决大位图等问题,并使用库进行系统栏着色。截屏执照 Copyright 2014 Zhang HaiLicensed under the Apache License, Version 2.0 (the "License");...

    位图与调色板源代码bmp_in_mdiclient2.zip_BMP 调色板_C#调色_c# 调色板_in_调色板

    在C#中,我们可以使用`ColorPalette`类来操作调色板,例如通过`Bitmap.Palette`属性获取或设置位图的调色板。 C#中处理调色板的方法包括: 1. 创建自定义调色板:可以使用`Color[]`数组创建一个`ColorPalette`,...

    android Palette调色板使用详解

    可以使用 palette.getVibrantSwatch()、palette.getDarkVibrantSwatch()、palette.getLightVibrantSwatch()、palette.getMutedSwatch()、palette.getDarkMutedSwatch() 和 palette.getLightMutedSwatch() 等方法获取...

    ts.rar_delphi 调色板

    在编程领域,调色板(Palette)是一种非常重要的工具,特别是在图形用户界面(GUI)设计中,它用于管理和控制颜色的显示。在Delphi这样的集成开发环境中,开发者可以创建自定义的调色板来增强应用程序的视觉效果。...

    调整位图调色板

    调色板是一个`TPalette`对象,可以通过`Palette.Colors`属性访问其颜色条目。 3. **修改调色板**:你可以遍历调色板的每一个颜色条目,改变它们的RGB值。比如,要改变第n个颜色条目的颜色,可以这样做: ```...

    Android进阶-Android 5.X 的新特性

    Android进阶-Android 5.X 的新特性,UI设计、Material Design主题、Palette、视图与阴影、Tinting和Clipping、列表与卡片、Activity过渡动画、Material Design动画效果、Toolbar和Notification。

    16.act win.pal 调色板文件Paint Shop 专用和Photo Shop专用.rar

    - 调色板(Palette):在计算机图形学中,调色板是指一个有限的颜色集,用于限制图像显示时可用的颜色数量。在24位真彩色环境下,调色板可以包含最多2^24种颜色。但在8位或更低位深度的系统中,调色板通常限制为256...

    android-support-v7-palette

    android-support-v7-palette 工具库

    调色板Palette使用

    Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() { @Override public void onGenerated(Palette palette) { // 在这里处理生成后的Palette } }); ``` - **性能优化**: 为了提高性能,...

    Android颜色拾取Palette

    5. **自定义分析**: 如果默认的颜色分类不能满足需求,可以使用` Palette.Builder` 提供的` setTintList()` 或 ` setTarget()` 方法来自定义颜色分析策略。 6. **优化性能**: 考虑到性能,可以使用` ...

    win32 调色板

    调色板(Palette)是Windows系统用来管理显示器颜色的一种机制,特别是在早期的8位和16位彩色显示模式中。它包含了一组颜色条目,每个条目由RGB(红、绿、蓝)值定义。当应用程序启动时,它可以请求系统分配一个调色...

    color-palette, 用于获取站点调色板的ruby 脚本.zip

    color-palette, 用于获取站点调色板的ruby 脚本 调色板用于获取站点调色板的ruby 脚本输出:颜色和频率的table===运行脚本:ruby color.rb'"'===说明:调色板考虑十六进制。rgb 。rgba和英文单词颜色( 例如。 红色,...

    android-support-v7-appcompat.rar with Palette

    《Android Support Library v7 AppCompat与Palette的深度解析》 Android Support Library v7 AppCompat库是Google为了兼容早期Android版本而推出的一个重要组件,它使得开发者可以将最新的Android设计元素和功能...

    Unity 颜色板 - 调色板

    ColorPalette loadedPalette = JsonUtility.FromJson(File.ReadAllText("palette.json")); ``` 7. **扩展功能**:还可以添加搜索和过滤功能,让用户根据色调、饱和度或明亮度查找特定颜色。或者创建自定义颜色的...

    关于vc++的调色板的实现

    在VC++环境中,调色板(Palette)是一个重要的图形用户界面(GUI)工具,它用于管理屏幕上的颜色显示。调色板允许程序控制在特定设备上显示的颜色集合,尤其是在有限色彩的显示设备上,如旧式的CRT显示器或者某些低...

    tsb.rar_调色板

    在图像处理领域,调色板(Palette)是一个至关重要的概念,尤其在早期的位图图像格式中,如GIF和PCX。调色板是一种颜色索引机制,它定义了一组有限的颜色,这些颜色用于表示图像中的每一个像素。在"tsb.rar_调色板...

    火山视窗API调色板的使用案例

    调色板(Palette)在图形用户界面中扮演着关键角色,它管理并控制屏幕上显示的颜色。在火山视窗API中,调色板允许开发者定义和选择应用使用的颜色集合,确保颜色在不同设备间的一致性,尤其是在那些色彩支持有限的...

Global site tag (gtag.js) - Google Analytics