2011-03-30 114 views
1

如何在Android中有效检测屏幕(您的应用程序)的主要颜色,而不会假设屏幕上的任何视图?检测屏幕的主要颜色

我想第一步将从屏幕上生成一个位图,虽然我不知道是否有更高效的方式来访问屏幕像素。

对于第二步,我正在考虑将位图缩放到1x1像素,并让平台为我做检测工作,但我不确定这是否可以在Android中使用。

+0

您需要root用于此 – 2011-03-30 15:07:56

回答

0

您可以尝试使用getDrawingCache从根布局生成Bitmap(并且不需要,至少在您自己的应用程序中,您不需要root用户)。 Android源码的测试中显示了an example,这些测试显示了如何执行此类操作。

但是,如果您想要处理其他人的应用程序,则需要屏幕截图功能,该功能需要root权限。

+0

如何检测位图中的主要颜色? – hpique 2011-03-30 17:51:10

+0

这取决于你如何定义“主色”。如果你只是指没有量化或任何事情发生频率最高的直线RGB值,那么通过像素循环应该是非常直接的。如果你想要更复杂/有趣的东西,你可能会发现这个问题很有用:http://stackoverflow.com/questions/1106190/algorithm-challenge-generate-color-scheme-from-an-image – 2011-03-30 19:52:35