如何以编程方式在android按钮上圆角

时间:2019-06-12 21:33:31

标签: android button material-design android-components

我要在代码下面像这样在按钮上弄圆角

        button.setWidth(buttonWidth);
        button.setHeight(buttonHeight);

如何使用Java代码(不带xml)定义圆形按钮

3 个答案:

答案 0 :(得分:0)

您将使用所需的圆角矩形背景制作xml可绘制文件(如果要在按下时使其亮起,请确保使用状态列表可绘制文件)并将其设置为背景。将其设置为背景只是一个setBackgroundDrawable调用。

答案 1 :(得分:0)

使用Material Components for Android

只需添加依赖项:

implementation ‘com.google.android.material:material:1.0.0’

在布局中添加MaterialButton

<com.google.android.material.button.MaterialButton
   ....
   style="@style/Widget.MaterialComponents.Button.OutlinedButton"
   app:cornerRadius=".."
   app:strokeColor="@color/colorPrimary"/>

并使用方法setCornerRadius

答案 2 :(得分:-1)

首先创建背景:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" >
    <shape android:shape="rectangle"  >
        <corners android:radius="3dip" />
        <stroke android:width="1dip" android:color="#5e7974" />
        <gradient android:angle="-90" android:startColor="#345953" android:endColor="#689a92"  />            
    </shape>
</item>
<item android:state_focused="true">
    <shape android:shape="rectangle"  >
        <corners android:radius="3dip" />
        <stroke android:width="1dip" android:color="#5e7974" />
        <solid android:color="#58857e"/>       
    </shape>
</item>  
<item >
   <shape android:shape="rectangle"  >
        <corners android:radius="3dip" />
        <stroke android:width="1dip" android:color="#5e7974" />
        <gradient android:angle="-90" android:startColor="#8dbab3" android:endColor="#58857e" />            
   </shape>
</item>

然后:

button.setBackground(ContextCompat.getDrawable(context, R.drawable.ready));

此答案基于thisthis链接。