【问题标题】:How to create a button with round edges programatically in Java?如何在 Java 中以编程方式创建具有圆形边缘的按钮?
【发布时间】:2017-12-08 12:44:54
【问题描述】:
是否可以在我的可绘制文件夹中不使用形状 XML 来创建具有圆边的按钮?
我的应用有很多按钮,它们会根据用户指定和触摸的内容改变颜色。这意味着我必须在我的 xml 中为它的特定颜色创建很多形状(大约有 20 种颜色)。
或者有没有一种方法可以轻松更改形状按钮的背景颜色?我的应用程序的一页上有大约 45 个按钮。
【问题讨论】:
标签:
java
android
button
colors
shapes
【解决方案1】:
你可以使用 imageView.setColorFilter(Color.RED) 函数来改变 xml drawable 的颜色
这里有一些例子
ImageView redCircle = (ImageView) findViewById(R.id.circle_red_imageview);
ImageView greenCircle = (ImageView) findViewById(R.id.circle_green_imageview);
ImageView blueCircle = (ImageView) findViewById(R.id.circle_blue_imageview);
// we can create the color values in different ways:
redCircle.getDrawable().setColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY );
greenCircle.getDrawable().setColorFilter(0xff00ff00, PorterDuff.Mode.MULTIPLY );
blueCircle.getDrawable().setColorFilter(getResources().getColor(R.color.blue), PorterDuff.Mode.MULTIPLY );