'How to fix programmatically round corners buttons on android?
I am going to want to rounded corners on button like this below code
button.setWidth(buttonWidth);
button.setHeight(buttonHeight);
How to define rounded buttons with java code, no xml
Solution 1:[1]
You'd make an xml drawable with the rounded rect background you want (make sure to use a state list drawable if you want it to hilight when pressed) and set it as the background. Setting it as the background is just a setBackgroundDrawable call.
Solution 2:[2]
Just set your theme to MaterialComponents. Note that this will mess up your current theme though.
https://learntodroid.com/how-to-create-rounded-corners-for-a-button-in-android/ may be another option.
Solution 3:[3]
First create a background:
<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>
and then:
button.setBackground(ContextCompat.getDrawable(context, R.drawable.ready));
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Gabe Sechan |
| Solution 2 | PIRUX |
| Solution 3 | Payam Asefi |
