调色板颜色覆盖轮廓

约书亚·菲尔蒂莫

我正在制作一个应用程序,只是为了检验一些新的L API,我对FloatingActionButton和Palette颜色生成器特别感兴趣因此,我设置了全屏ImageView显示HTC墙纸,然后使用提取其中一种颜色Palette并将其设置为FAB的背景色。但是,这样做会从我的FAB中删除大纲,因此它不再是圆形的。
我想知道,如果可能的话,如何阻止调色板覆盖大纲。

调色板AsyncListener:

MyActivity.java

Palette.generateAsync(BitmapFactory.decodeResource(getResources(),R.drawable.wallpapers_07),
     new Palette.PaletteAsyncListener() {
          @Override
          public void onGenerated(Palette palette) {
              PaletteItem item = palette.getLightVibrantColor();
              ImageButton button = (ImageButton) findViewById(R.id.fab);
              if (item != null) {
                  button.setBackgroundColor(item.getRgb());
              }
           }
     });

MyActivity.java中的概述

int size = getResources().getDimensionPixelSize(R.dimen.fab_size);
Outline outline = new Outline();
outline.setOval(0, 0, size, size);
findViewById(R.id.fab).setOutline(outline);

FAB背景可绘制

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item>
    <shape android:shape="oval">
        <solid android:color="?android:colorAccent"/>
    </shape>
</item>

丙氨酸

您正在用颜色(ColorDrawable)替换背景可绘制对象(RippleDrawable)。而是要更改背景可绘制对象所包含的形状(GradientDrawable)的颜色。

尝试改为更改滤色器:

findViewById(R.id.fab).getBackgroundDrawable().setColorFilter(
    new PorterDuffColorFilter(item.getRgb(), Mode.SRC_IN));

如果您经常更改颜色,则可以缓存颜色滤镜对象并使用setColor(int),然后使用findViewById(R.id.fab).invalidate()更新视图。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

向虹膜颜色选择器添加更多调色板,而不会覆盖当前调色板?

来自分类Dev

Seaborn调色板-防止颜色回收

来自分类Dev

从样式调色板获取matplotlib颜色

来自分类Dev

在R的调色板中保存颜色

来自分类Dev

从样式调色板获取matplotlib颜色

来自分类Dev

Python 对数颜色图/调色板

来自分类Dev

如何计算调色板中所选颜色的颜色?

来自分类Dev

调色板主题

来自分类Dev

onClick调色板

来自分类Dev

令人愉悦的调色板随机颜色生成

来自分类Dev

gnuplot-用调色板颜色填充曲线

来自分类Dev

调色板库在GridView中滚动时更改颜色

来自分类Dev

可视化R中的颜色/调色板列表

来自分类Dev

如何将调色板缩小为特定颜色?

来自分类Dev

使用调色板从TIFF获取像素颜色索引

来自分类Dev

减少位图调色板中颜色数量的最佳方法

来自分类Dev

如何删除调色板颜色热图

来自分类Dev

Gnuplot:为绝对值设置调色板颜色

来自分类Dev

获取当前tk调色板的颜色代码

来自分类Dev

获取当前tk调色板的颜色代码

来自分类Dev

使用调色板从TIFF获取像素颜色索引

来自分类Dev

Inkscape调色板(.gpl)中的颜色透明度

来自分类Dev

选择ggplot图例项目并保留调色板颜色

来自分类Dev

调色板API颜色提取不准确

来自分类Dev

从 RGB 颜色列表创建调色板图像

来自分类Dev

不能使用调色板用颜色填充对象

来自分类Dev

将调色板分配给图像的图块,以适合每个K种颜色的N个调色板

来自分类Dev

Gnuplot默认调色板

来自分类Dev

Barplot忽略调色板