Palette的使用

	BitmapDrawable drawable = (BitmapDrawable) iv.getDrawable();
	Bitmap bitmap = drawable.getBitmap();
	//得到bitmap里面的的一些色彩信息---通过Palette类分析出来的
    //Palette palette = Palette.generate(bitmap);
	//异步任务---可能分析的图片会比较大或者颜色分布比较复杂,会耗时比较久,防止卡死主线程。
	Palette.from(bitmap).generate(new PaletteAsyncListener() {
		
		@Override
		public void onGenerated(Palette palette) {
			//暗、柔和的颜色
			int darkMutedColor = palette.getDarkMutedColor(Color.BLUE);//如果分析不出来,则返回默认颜色
			//暗、柔和
			int lightMutedColor = palette.getLightMutedColor(Color.BLUE);
			//暗、鲜艳
			int darkVibrantColor = palette.getDarkVibrantColor(Color.BLUE);
			//亮、鲜艳
			int lightVibrantColor = palette.getLightVibrantColor(Color.BLUE);
			//柔和
			int mutedColor = palette.getMutedColor(Color.BLUE);
			//柔和
			int vibrantColor = palette.getVibrantColor(Color.BLUE);
			//获取某种特性颜色的样品
          //Swatch lightVibrantSwatch = palette.getLightVibrantSwatch();
			Swatch lightVibrantSwatch = palette.getVibrantSwatch();
			//谷歌推荐的:图片的整体的颜色rgb的混合值---主色调
			int rgb = lightVibrantSwatch.getRgb();
			//谷歌推荐:图片中间的文字颜色
			int bodyTextColor = lightVibrantSwatch.getBodyTextColor();
			//谷歌推荐:作为标题的颜色(有一定的和图片的对比度的颜色值)
			int titleTextColor = lightVibrantSwatch.getTitleTextColor();
			//颜色向量
			float[] hsl = lightVibrantSwatch.getHsl();
			//分析该颜色在图片中所占的像素多少值
			int population = lightVibrantSwatch.getPopulation();
			
			
			
			tv_title.setBackgroundColor(getTranslucentColor(0.6f,rgb));
			tv_title.setTextColor(titleTextColor);
			
			tv1.setBackgroundColor(darkMutedColor);
			tv1.setText("darkMutedColor");
			tv2.setBackgroundColor(lightMutedColor);
			tv2.setText("lightMutedColor");
			tv3.setBackgroundColor(darkVibrantColor);
			tv3.setText("darkVibrantColor");
			tv4.setBackgroundColor(lightVibrantColor);
			tv4.setText("lightVibrantColor");
			tv5.setBackgroundColor(mutedColor);
			tv5.setText("mutedColor");
			tv6.setBackgroundColor(vibrantColor);
			tv6.setText("vibrantColor");
			
		}
	});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值