Как бы вы эффективно определяли преобладающий цвет экрана (вашего приложения) в Android, не предполагая ничего о представлениях на экране?
Я полагаю, что первым шагом будет создание растрового изображения с экрана, хотя я не знаю, есть ли более эффективный способ доступа к пикселям экрана.
Для второго шага я подумывал масштабировать растровое изображение до пикселя 1x1 и позволить платформе выполнять обнаружение для меня, но я не уверен, что это возможно в Android.
Вы можете попробовать использовать getDrawingCache
для генерации Bitmap
из корневого макета (и нет, для этого вам не нужен root, по крайней мере внутри вашего собственного приложения). Здесь пример из тестовых версий Android, который показывает, как сделать что-то подобное.
Если вы хотите работать с приложениями других людей, вам понадобится возможность скриншотов, которая требует прав root.