如何在安卓系统中以编程方式获取应用程序图标的颜色代码?

3

实际上,我的要求是获取我设备中任何已安装应用程序的图标颜色代码。我想显示一个与该颜色相同的锁屏。那么,如何通过编程获取任何图标的颜色代码呢?


图标内部有不同的颜色,也许你可以尝试找出哪种颜色是占主导地位的。你还可以手动列出与流行应用程序名称和图标颜色相关的列表。 - Jemshit Iskenderov
首先,你是否考虑过任何图标可能具有(通常都具有)多种颜色? - Amit K. Saha
是的,我知道应用程序图标内部有多种颜色。例如您可以在CM Security applock中看到。在该applock中,它获取应用程序图标的颜色并在锁定屏幕上显示。 - user3936734
2个回答

3
如果您想从单个图标中获取所有颜色的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());

你知道如何从URL中获取图标的颜色吗?例如:https://www.google.com/s2/favicons?domain=youtube.com - TheCoderGuy
@Spritzig,唯一的区别就是从URL创建位图,这应该是微不足道的。 - Amit K. Saha
我不太明白,请在评论中提供一些代码示例。 - TheCoderGuy

0

嗨Lars....我的意图是获取已安装应用程序图标的颜色代码,谢谢你给我提供了一个想法。 - user3936734

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接