创建圆形按钮有很好的解决方案。 (How to make a round button?)
然而,大多数这些似乎都在按钮xml文件中硬编码颜色。
有没有办法创建一个具有可配置/可设置颜色的圆形按钮? (我不喜欢为我可能使用的每个颜色按钮创建一个xml文件的想法)
理想情况下,当我在layout.xml中使用RoundButton时,我会应用颜色,就像使用View一样。
注意:我的按钮需要包含文本,因此它也可以是TextView。
由于
答案 0 :(得分:3)
定义没有颜色的xml(链接中的xml):
roundedbutton.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:bottomRightRadius="8dip"
android:bottomLeftRadius="8dip"
android:topRightRadius="8dip"
android:topLeftRadius="8dip"/>
button.xml:
<Button
android:layout_height="50dp"
android:layout_width="90dp"
android:id="@+id/button"
android:text="Button"
android:background="@drawable/roundedbutton"/>
你可以这样做:
button.getBackground().setColorFilter(Color.parseColor("#bbe618"), PorterDuff.Mode.SRC_IN);
结果:
答案 1 :(得分:0)
如果你想要一个带圆角的简单按钮,你可以直接从这里使用CardView:round corners。您可以以编程方式设置CardView背景颜色并使其前景保持纹波=?selectableitembackground
对于圆形按钮,您可以使用此库:circle button
答案 2 :(得分:0)
您可以制作这样的函数并将视图和颜色传递给它。
/**
*
* @param v: Can be any view like Button, Textview, Linearlayout,etc
* @param color: Background color which you want
*/
public static void setRoundedBackGround(View v, int color)
{
GradientDrawable drawable = new GradientDrawable();
drawable.setShape(GradientDrawable.RING);
drawable.setStroke(3, Color.BLACK); // You can set any border color
if(color == 0)
{
drawable.setColor(Color.TRANSPARENT);
v.setBackgroundDrawable(drawable);
}
else
{
drawable.setColor(color);
v.setBackgroundDrawable(drawable);
}
}
希望这对你有所帮助。