Как программно получить код цвета приложения на 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
Надеюсь, это поможет вам немного.