我想知道如何以编程方式设置按钮颜色?我编写了以下代码但失败了:
Button11.setBackgroundColor(R.color.red);
Run Code Online (Sandbox Code Playgroud)
谢谢!!
Eri*_*ric 77
R.color.red是一个ID(也是一个int),但不是一种颜色.
请改用以下其中一项:
// If you're in an activity:
Button11.setBackgroundColor(getResources().getColor(R.color.red));
// OR, if you're not:
Button11.setBackgroundColor(Button11.getContext().getResources().getColor(R.color.red));
Run Code Online (Sandbox Code Playgroud)
或者,或者:
Button11.setBackgroundColor(Color.RED); // From android.graphics.Color
Run Code Online (Sandbox Code Playgroud)
或者,更多专业技能:
Button11.setBackgroundColor(0xFFFF0000); // 0xAARRGGBB
Run Code Online (Sandbox Code Playgroud)
soj*_*jin 38
旧线程,但学到了新的东西,希望这可能会帮助某人.
如果您想更改背景颜色但保留其他样式,则下面的内容可能有所帮助.
button.getBackground().setColorFilter(ContextCompat.getColor(this, R.color.colorAccent), PorterDuff.Mode.MULTIPLY);
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以以编程方式将所需的颜色设置为按钮,例如:
Button11.setBackgroundColor(Android.Graphics.Color.parseColor("#738b28"));
Run Code Online (Sandbox Code Playgroud)
您也可以为按钮指定文本颜色,例如:
Button11.setTextColor(Android.Graphics.Color.parseColor("#FFFFFF"));
Run Code Online (Sandbox Code Playgroud)
您在2020 年及以后寻找的答案:
setColorFilter(color, mode)自 API 29 起已弃用(如此处所述)button.setBackgroundColor(color) 按钮样式混乱现在设置按钮颜色的正确方法是使用BlendModeColorFilter()(参见文档)。
用法:
btn.background.colorFilter = BlendModeColorFilter(color, BlendMode.MULTIPLY)
Run Code Online (Sandbox Code Playgroud)
如果您也使用旧 API:
fun setButtonColor(btn: Button, color: Int) {
if (Build.VERSION.SDK_INT >= 29)
btn.background.colorFilter = BlendModeColorFilter(color, BlendMode.MULTIPLY)
else
btn.background.setColorFilter(color, PorterDuff.Mode.MULTIPLY)
}
Run Code Online (Sandbox Code Playgroud)
请投票以帮助其他人找到这个答案-我花了很长时间才弄清楚这一点^^
| 归档时间: |
|
| 查看次数: |
94416 次 |
| 最近记录: |