2011-03-30 113 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