【问题标题】:How to set corner radiuses for the button in java code?如何在java代码中设置按钮的圆角半径?
【发布时间】:2012-01-03 08:25:40
【问题描述】:

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

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

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

【问题讨论】:

标签: android android-widget


【解决方案1】:

使用 GradientDrawable

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

【讨论】:

  • 如何将'gdDefault'分配给按钮?
  • anyView.setBackGroundDrawable(gdDefault);
【解决方案2】:

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

<?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>

【讨论】:

  • 嗨,加比,感谢您的回答。我按照您的编写创建了 xml 文件,但是如何在代码中接收对矩形的引用?我想它类似于 b.setBackground(getResources().????)。我写什么而不是 ??
  • 您只需要获取可绘制对象(可绘制对象是此 xml 的名称)并将其设置为按钮的背景(如果您从代码中执行此操作)或只是 xml 中的背景设置为您的名称xml
  • 如果 xml 被命名为“some_drawable.xml”,您可以通过以下方式进行:b.setBackgroundResource(R.drawable.some_drawable);
【解决方案3】:

查看Shape Drawable的文档

【讨论】:

  • 嗨,Clemp6r,我现在看到了链接,但我仍然不明白我应该写什么。如果你能写一些例子或一些解释,请。谢谢。
  • @gabi 的例子是对的。像他的示例一样创建一个 XML 文件,并在 java 中使用 button.setBackgroundResource(R.drawable.the_drawable_name) 应用生成的可绘制对象。
【解决方案4】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多