2014 年 10 月,杰克·沃顿 (Jake Wharton) 写了《强迫毕加索玩调色板》。其中,有两种方法正在思考:
使用生成调色板的转换。这样做的好处是调色板是在 Picasso 的工作线程上生成的,并且在加载图像时就准备好了。然而,缺点似乎是我得到的调色板与图片不匹配。目前我一次只运行其中一个转换。
使用
Callback
从onSuccess
获取位图ImageView
并生成调色板。我情不自禁地把注意力集中在// Ew!
杰克放在这行末尾的那句话上,我非常同意。
上面提到的帖子写于 2014 年 10 月。现在我们已经过了几个月的讨论,我想知道推荐的方法是什么?还有一个关于meta data
与位图关联的讨论。实施了吗?我将如何使用它?
我的Transformation
代码(不是最终的,我刚刚开始研究这个):
public final class PaletteGenerator
implements Transformation {
private final int numColors;
@Getter private Palette palette;
@Override public Bitmap transform (final Bitmap source) {
palette = null;
final Palette palette = numColors > 0
? Palette.generate (source, numColors)
: Palette.generate (source);
return source;
}
@Override public String key () {
return String.format (Locale.ENGLISH, "%s:%d", getClass ().getCanonicalName (), numColors);
}
public PaletteGenerator () {
this (0);
}
public PaletteGenerator (final int c) {
numColors = c;
}
}