Android Lollipop 新特性 - Palette;获取图片颜色

Android Lollipop 新特性 - Palette

在Android 5.0 之后推出的palette,通过这个方法,我们就可以从一张 bitmap 中提取我们需要的颜色,可以使UI风格更加美观融洽。比如,我们可以从图片中提取颜色设置给ActionBar做背景颜色,这样ActionBar的颜色就会随着显示图片的变化而变化。

Palette可以提取的颜色如下:

  • Vibrant (有活力的)
  • Vibrant dark(有活力的 暗色)
  • Vibrant light(有活力的 亮色)
  • Muted (柔和的)
  • Muted dark(柔和的 暗色)
  • Muted light(柔和的 亮色)

使用方法

compile ‘com.android.support:palette-v7:25.1.0’

通过一个Bitmap对象来生成一个对应的Palette对象

BitmapDrawable drawable = (BitmapDrawable) getResources().getDrawable(R.drawable.pic);
Bitmap bitmap = drawable.getBitmap();

Palette.Builder builder = Palette.from(bitmap);

拿到提取到的颜色值

  • Palette.getVibrantSwatch()
  • Palette.getDarkVibrantSwatch()
  • Palette.getLightVibrantSwatch()
  • Palette.getMutedSwatch()
  • Palette.getDarkMutedSwatch()
  • Palette.getLightMutedSwatch()
AsyncTask<Bitmap, Void, Palette> generate = builder.generate(new Palette.PaletteAsyncListener() {
    @Override
    public void onGenerated(Palette palette) {
        // 有活力的颜色
        vibrant = palette.getVibrantSwatch();
        // 有活力的暗色
        darkVibrant = palette.getDarkVibrantSwatch();
        // 有活力的亮色
        lightVibrant = palette.getLightVibrantSwatch();
        // 柔和的颜色
        muted = palette.getMutedSwatch();
        // 柔和的暗色
        darkMuted = palette.getDarkMutedSwatch();
        // 柔和的亮色
        lightMuted = palette.getLightMutedSwatch();

        // 使用颜色
        // 修改Actionbar背景颜色
        getSupportActionBar().setBackgroundDrawable(new ColorDrawable(vibrant.getRgb()));

        ((Button) findViewById(R.id.text)).setTextColor(vibrant.getTitleTextColor());
        ((Button) findViewById(R.id.text)).setBackgroundColor(vibrant.getRgb());
        ((Button) findViewById(R.id.text1)).setTextColor(darkVibrant.getTitleTextColor());
        ((Button) findViewById(R.id.text1)).setBackgroundColor(darkVibrant.getRgb());
        ((Button) findViewById(R.id.text2)).setTextColor(lightVibrant.getTitleTextColor());
        ((Button) findViewById(R.id.text2)).setBackgroundColor(lightVibrant.getRgb());
        ((Button) findViewById(R.id.text3)).setTextColor(muted.getTitleTextColor());
        ((Button) findViewById(R.id.text3)).setBackgroundColor(muted.getRgb());
        ((Button) findViewById(R.id.text4)).setTextColor(darkMuted.getTitleTextColor());
        ((Button) findViewById(R.id.text4)).setBackgroundColor(darkMuted.getRgb());
        ((Button) findViewById(R.id.text5)).setTextColor(lightMuted.getTitleTextColor());
        ((Button) findViewById(R.id.text5)).setBackgroundColor(lightMuted.getRgb());
    }
});

Swatch 样本对象,这个样本对象是Palette的一个内部类,它提供了一些获取最终颜色的方法

  • getPopulation(): 样本中的像素数量
  • getRgb(): 颜色的RBG值
  • getHsl(): 颜色的HSL值
  • getBodyTextColor(): 主体文字的颜色值
  • getTitleTextColor(): 标题文字的颜色值

Palette 实例

这里写图片描述

### 回答1: Python停用词,也称为停用词,是一个包含英文单词的列,这些单词通常被认为在文本分析或信息检索中没有用处或起到负面作用,因此被排除在分析范围之外。Python停用词中的单词包括英语中的冠词、介词、连词、代词等功能词,以及一些出现频率较高但在文档中并没有实际意义的常规单词。 常用的Python停用词英文单词包括:a、an、the、in、on、at、of、to、for、and、or、not、but、so、as、with、by、from、into、through、over、under、between、among等单词。 使用Python停用词有利于提高文本分类、信息提取和自然语言处理的准确性和效率,因为它可以减少文档中无意义的单词数量,提高有用信息的占比,从而更好地识别出文本的主要内容和情感。在Python中,许多NLP工具包和库都提供了预定义的停用词,也支持自定义停用词的导入和使用,以满足不同场景和需求的应用。 ### 回答2: Python停用词包含了英语中常见的停用词停用词是一些普遍的单词,它们在文本中出现频率很高,但对文本的意义贡献很小,所以在将文本进行自然语言处理时,需要过滤掉这些词语。Python停用词自然语言处理中扮演了重要的角色,因为处理文本时忽略掉这些停用词,能够提高算法的精度和处理效率。 Python停用词中的英文停用词主要有以下几类: 1.功能词:如in, on, at, the, and等。 2.形容词:如big, small, good, bad等。 3.名词:如time, year, day, person等。 4.代词:如he, she, it, they, them等。 5.动词:如is, are, was, were, be等。 6.副词:如well, there, here, now等。 7.介词:如to, with, by, for, from等。 Python停用词包含了近300个英文停用词,这些词语都是在文本处理中具有普遍性的,它们出现的频率高而且一般不影响文本的理解。Python停用词不仅可以用于自然语言处理,而且还可以用于文本分析、搜索引擎优化等领域。 在使用Python进行文本处理时,需要将文本中的停用词去除掉,才能提高算法的准确性。Python停用词中的英文停用词是处理文本时不可缺少的一部分,使用它们要注意的是,需要根据实际情况进行过滤,因为有些文本中的停用词可能对文本的含义有着重要的影响。 ### 回答3: Python停用词英文是指在Python程序中使用的一组固定的无效单词列,这些单词通常不会对程序中的执行结果产生任何影响。Python停用词英文包含了诸如“i”、“am”、“the”等常用词汇。 在自然语言处理的领域中,停用词的使用很常见。在需要对大量文本进行分析时,停用词可以帮助处理文本,并尽可能清除无意义的单词,以提高文本处理的效率和准确性。Python停用词英文在此时可以被广泛地使用。 Python停用词英文的选取通常基于自然语言处理的目的和语料库的来源。不同的领域和语言有各自的常用停用词。Python停用词英文可以用于各种文本数据的处理,例如文本分类、主题分析、情感分析等。 在Python程序中使用Python停用词英文时,通常需要预处理文本数据。这可以通过使用Python程序中的字符串函数来实现。例如,可以使用split()函数将文本数据分割成单词列,并通过for循环遍历单词列,过滤掉停用词。可以使用Python程序中的in操作符判断单词是否在停用词中。 Python停用词英文的使用对于文本数据的预处理和分析具有重要作用。在自然语言处理的领域中,Python停用词英文可以帮助提高文本处理的效率和准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xhBruce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值