4

我的问题与将图像覆盖应用于所有按钮按下事件有关。因此,例如,在具有全息设置的 Android 4.0 及更高版本中,当您按下任何按钮时,按钮上都会有浅蓝色覆盖层。在早期版本的android中,它是橙色的。我知道如何设置按钮以使用选择器和项目标签在 XML 中更改按下、聚焦和默认的图像,但这需要我制作按钮的另一个图像,但带有浅蓝色覆盖层,这意味着我知道每个按钮有 2 张图片。我的应用程序将有很多按钮,我希望应用程序的文件大小尽可能小。

所以问题的重点是,有没有办法只制作一张图片(浅蓝色 25% 不透明度图像)作为所有按钮按下的覆盖,同时保持我设置的按钮的原始背景留在那里?

4

1 回答 1

2

加载图像。然后在其上绘制 alpha 颜色。

然后使用修改后的图像设置按钮图像。

Bitmap img = BitmapFactory.decodeFile(pathName); // or decodeResource  etc....

Canvas canvas = new Canvas(img);
Paint alphaPaint = new Paint();

// Color to apply.
alphaPaint.setColor(Color.BLUE);
alphaPaint.setAlpha(20);

// Draw rectangle over your image using the alpha colored paint.
canvas.drawRect(0, 0, canvas.getWidth(), canvas.getHeight(), alphaPaint);
myButton.setImageBitmap(img );
于 2012-12-03T16:29:08.143 回答