Как программно получить код цвета приложения на Android?

На самом деле мое требование - получить цвет значка любого приложения, установленного на моем устройстве. Я хочу показать экран блокировки этого цвета. Так как же получить программный цветовой код любой иконки?

2 ответа

Решение

Если вы хотите получить значение RGB для всех цветов из одного значка:

Bitmap bitmap;
// create  the bitmap from your obtained image
int pixel = bitmap.getPixel(x,y); // x,y is the desired position of the target pixel, for full imag, you have to do the same thing in a loop

int red = Color.red(pixel);
int green = Color.green(pixel);
int blue = Color.blue(pixel);

Возвращенные значения int являются стандартными 0 - 255. Вы можете изменить этот код и получить цвет из любого места, при условии, что вы можете превратить его в растровое изображение. И вы можете использовать Color API для получения фактического значения RGB следующим образом:

int rgb = Color.rgb(red, blue, green); // rgb value of a single pixel, 

Теперь, чтобы получить все пиксели одновременно, вы можете использовать Bitmap.getPixels()

int[] allPixels = new int[bitmap.getWidth()*bitmap.getHeight()];
bitmap.getPixels(allPixels, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());

Я не знаю, что вы имеете в виду, когда получаете цвет значка, поскольку значок является изображением, но вы можете получить значок известного приложения, например, такого: /questions/45764511/poluchit-znachok-iz-drugogo-prilozheniya-dlya-android/45764536#45764536

И вы можете получить все установленные приложения, как это: Как установить все приложения на телефон Android

Надеюсь, это поможет вам немного.

Другие вопросы по тегам