我的问题与将图像叠加应用于所有按钮按下事件有关。因此,例如,在具有全息设置的 Android 4.0 及更高版本中,当您按下任何按钮时,它会在按钮上覆盖浅蓝色。在早期版本的android中,它是橙色的。我知道如何设置按钮以使用选择器和项目标签更改 XML 中按下、聚焦和默认的图像,但这需要我制作另一张按钮图像,但带有浅蓝色覆盖层,这意味着我知道每个按钮有 2 张图片。我的应用程序将有很多按钮,我想使应用程序的文件大小尽可能小。
所以问题的关键是,有没有一种方法可以只制作一张图片(浅蓝色 25% 不透明度图像)作为所有按钮按下的叠加层,同时保留我设置的按钮的原始背景在那里?
最佳答案
载入图片。然后在其上绘制 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 );
关于Android - 按钮按下事件上的图像 - 将图像叠加应用于所有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13687394/