如何在java代码中为按钮设置角半径?

时间:2012-01-03 08:25:40

标签: android android-widget

我想设置没有xml的圆角。我怎么能在java代码中做到这一点?

Button b = new Button (this);
b.set???? (??) ;

我尝试编写b.setCornerRadius(3.0f),但是对于按钮对象未定义。 感谢。

4 个答案:

答案 0 :(得分:27)

使用GradientDrawable

GradientDrawable gdDefault = new GradientDrawable();
gdDefault.setColor(bgColor);
gdDefault.setCornerRadius(cornerRadius);
gdDefault.setStroke(strokeWidth, strokeColor);

答案 1 :(得分:4)

在可绘制文件夹中创建一个形状并设置所需的半径,并将此drawable设置为按钮的背景:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        
    <item>
        <shape android:shape="rectangle">
            <corners android:radius="5dip"/>
        </shape>
    </item>
</layer-list>

答案 2 :(得分:0)

请参阅Shape Drawable

的文档

答案 3 :(得分:0)

尝试setGradientRadius()。 setCornerRadius()设置错误的大小。

GradientDrawable drawable = (GradientDrawable)image.getBackground();
drawable.setGradientRadius(radiuspx);