在我的应用程序中,我需要响应某些事件来更改按钮的背景色。通过设置创建一个可绘制对象,设置其绘画并将该可绘制对象用作按钮背景,可以很好地工作:
ShapeDrawable drawable = new ShapeDrawable(roundRectShape);
drawable.getPaint().setColor(color);
b.setBackground(drawable);
现在,我想在该可绘制对象上覆盖一个Alpha蒙版,从而创建一个“条纹”按钮。这是蓝色和黑色按钮的外观(假设白色为背景色,但是这些部分实际上应该是100%透明的):
我在Inkscape中制作了该Alpha蒙版,并将其成功导入为矢量资产。我可能需要将其转换为各种位图,但不确定。
我已经读了很多文章和关于PorterDuff矩阵的问题,但是还不能将它们转化为解决当前问题的方法。
有人知道怎么做吗?
这是另一种可视化效果,希望可以使事情变得更清晰。按钮的父视图的背景颜色在这里是浅粉红色,按钮边框用红色勾勒出轮廓(但在最终产品中实际上应该是不可见的):
最佳答案
//这会有所帮助。
ImageView img = (ImageView) findViewById(R.drawable.yourimage);
img.setAlpha(100);
//透明值介于0到255之间;
//如果要使用位图
Bitmap b = BitmapFactory.decodeResources(getResources(), R.drawable.yourimage);
img.setImageBitmap(b);
img.setAlpha(100);