创建ColorFilter的自定义子类?

kco*_*ock 6 android subclass extend colorfilter

好的,所以这与我之前关于ColorMatrixColorFilter的问题有些相关,但我觉得这是一个截然不同的问题.我想知道是否有办法 - 或者更确切地说,如何扩展ColorFilter类来创建我自己的自定义颜色过滤器.对于我需要完成的任务,我需要编写一个自定义过滤器,它将查询每个像素,将其RGB值转换为HSL或LAB,修改色调,将其转换回RGB,并将该像素设置为新值.

我想我可以简单地编写一个执行此操作的类,接受Drawable和一定量的色调移位来执行,但是必须手动调用每个Drawable,以及每个Drawable的每个状态,而ColorFilter似乎处理得很好.鉴于LightingColorFilter和ColorMatrixColorFilter的存在,它似乎可以被子类化,但到目前为止,我找到任何类型的文档的努力都是徒劳的.我似乎找不到三个中的任何一个的源代码(Lighting,ColorMatrix,ColorFilter); 我在想他们可能是用原生代码完成的?

我的问题是:我如何正确地继承ColorFilter?如果我找不到一个好的答案,如果有人能够找到源(我已经搜索过Android的git)并发布了一个链接,那也会有所帮助.

谢谢!

Dal*_*mas 1

正如您所说,源代码显示 ColorFilter 使用本机代码,因此您无法真正对其进行子类化。

除了为您想做的事情创建自己的类之外,可能没有其他方法了。

  • 这 150 个点激励我亲自检查 NDK...似乎有一个 bitmap_plasma 示例,它或多或少正是您需要适应的。如果您使用的是 Windows,则需要安装 Cygwin 来运行 GCC 编译器和其他工具,但它看起来相当简单。 (2认同)