带有边框和背景颜色的Android按钮

时间:2015-08-10 10:41:57

标签: android xml resources

我正在尝试美化Android中的一些UI组件。我需要创建一个黑色边框和背景颜色的按钮。如果我将变量硬编码为XML,一切都很好。但我有不同的按钮,不同的背景颜色和不同的边框颜色和大小等等所有你可以说的变化。如果我在单独的XML文件中创建所有变体,那肯定是错误的。目前,我在代码中创建样式但看起来效率不高。

gradient.setColor(getContext().getResources().getColor(R.color.ORANGE));
gradient.setCornerRadius(5);
gradient.setStroke(5, 0xFF000000);
button.setBackground(gradient);

如果我想要具有不同背景颜色的按钮,我需要创建另一个渐变并初始化它并设置为按钮的资源。另一件事,当我设置按钮的背景时,按下按钮时我也会失去颜色变化。如何创建可在界面中自定义的XML可绘制资源?或者更简单的方法是什么?

感谢。

1 个答案:

答案 0 :(得分:0)

使用了这个: -

 Drawable mDrawable = ContextCompat.getDrawable(youContext, R.drawable.youdrawable)
            mDrawable.setColorFilter(PorterDuffColorFilter(youColor, PorterDuff.Mode.MULTIPLY)
           button.setbackground(mDrawable)