如何在android中为灰色资源图标上色(尤其是麦克风)

如何在android中为灰色资源图标上色(尤其是麦克风),android,Android,我目前正在为android开发一个应用程序。因此,我想创建一个麦克风小部件,比如谷歌搜索对话框中的那个。此图标由白色填充,如条形图,具体取决于记录的音量。 我已经在SDK附带的可绘图资源中找到了图标(ic_btn_speak_now.png) 不幸的是,图标不是一个简单的形状,麦克风形状有一个透明区域。相反,它由一些不同的灰度值组成。我现在的问题是: 谷歌的开发者(以及我见过的其他人)是如何只用颜色填充图标的麦克风形状的 我希望你们中的一个有想法 一种可能是创建中间带有透明麦克风形状的图标并更改

我目前正在为android开发一个应用程序。因此,我想创建一个麦克风小部件,比如谷歌搜索对话框中的那个。此图标由白色填充,如条形图,具体取决于记录的音量。 我已经在SDK附带的可绘图资源中找到了图标(ic_btn_speak_now.png)

不幸的是,图标不是一个简单的形状,麦克风形状有一个透明区域。相反,它由一些不同的灰度值组成。我现在的问题是:

谷歌的开发者(以及我见过的其他人)是如何只用颜色填充图标的麦克风形状的


我希望你们中的一个有想法

一种可能是创建中间带有透明麦克风形状的图标并更改背景颜色?

一种可能是创建中间带有透明麦克风形状的图标并更改背景颜色?

尝试应用颜色过滤器:

更准确地说: 通过使用
ColorMatrixColorFilter
,您可以对图标应用
ColorMatrix
。这样,可以增加特定颜色的值,从而为其着色。例如,要将其着色为红色:

float[] f = new float[] {1, 0, 0, 1, 50, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0};
icon.setColorFilter(new ColorMatrixColorFilter(new ColorMatrix(f)));

但这只是我的想法。您可能需要自己处理矩阵。

尝试应用颜色过滤器:

更准确地说: 通过使用
ColorMatrixColorFilter
,您可以对图标应用
ColorMatrix
。这样,可以增加特定颜色的值,从而为其着色。例如,要将其着色为红色:

float[] f = new float[] {1, 0, 0, 1, 50, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0};
icon.setColorFilter(new ColorMatrixColorFilter(new ColorMatrix(f)));

但这只是我的想法。你可能必须自己玩矩阵。

是的,这是通常的方式。但我还是希望使用ressource中提供的。从google语音搜索对话框中,我知道这应该是可能的,因为这将是通常的方式。但我还是希望使用ressource中提供的。从google语音搜索对话框中,我知道这应该是可能的