4

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

4 Answers 4

3

Use the Material Components for Android.

Just add the dependency:

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

Add the MaterialButton in your layout:

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

and use the method setCornerRadius.
Something like:

button.setCornerRadius(..);
Sign up to request clarification or add additional context in comments.

Comments

0

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.

1 Comment

I did like this "button.setBackground(R.drawable.score_background);" but not aplied
0

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.

Comments

-1

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));

this answer is based on this and this link.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.