Can not round corners of drawable with method setCornerRadius











up vote
0
down vote

favorite












I have simple TextView. I want set simple colored background with round corners.



I try two ways.



public static Drawable createRoundDrawable(int color, float radius) {
GradientDrawable drawable = new GradientDrawable();
drawable.setShape(GradientDrawable.RECTANGLE);
drawable.setColor(color);
drawable.setCornerRadius(radius);
return drawable;
}


And



public static Drawable createRoundDrawable(int color, float radius) {
PaintDrawable drawable = new PaintDrawable(color);
drawable.setCornerRadius(radius);
return drawable;
}


I create drawable with createRoundDrawable method and set background to textView by



textView.setBackground(background);


So, background applied to textView, but corners have no any radius. Why? And how to fix it?










share|improve this question






















  • I tried your code in my example project. It works for me. Can you share another information to us, for example your xml file, which api used etc.
    – enesgonez
    Nov 22 at 10:50















up vote
0
down vote

favorite












I have simple TextView. I want set simple colored background with round corners.



I try two ways.



public static Drawable createRoundDrawable(int color, float radius) {
GradientDrawable drawable = new GradientDrawable();
drawable.setShape(GradientDrawable.RECTANGLE);
drawable.setColor(color);
drawable.setCornerRadius(radius);
return drawable;
}


And



public static Drawable createRoundDrawable(int color, float radius) {
PaintDrawable drawable = new PaintDrawable(color);
drawable.setCornerRadius(radius);
return drawable;
}


I create drawable with createRoundDrawable method and set background to textView by



textView.setBackground(background);


So, background applied to textView, but corners have no any radius. Why? And how to fix it?










share|improve this question






















  • I tried your code in my example project. It works for me. Can you share another information to us, for example your xml file, which api used etc.
    – enesgonez
    Nov 22 at 10:50













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I have simple TextView. I want set simple colored background with round corners.



I try two ways.



public static Drawable createRoundDrawable(int color, float radius) {
GradientDrawable drawable = new GradientDrawable();
drawable.setShape(GradientDrawable.RECTANGLE);
drawable.setColor(color);
drawable.setCornerRadius(radius);
return drawable;
}


And



public static Drawable createRoundDrawable(int color, float radius) {
PaintDrawable drawable = new PaintDrawable(color);
drawable.setCornerRadius(radius);
return drawable;
}


I create drawable with createRoundDrawable method and set background to textView by



textView.setBackground(background);


So, background applied to textView, but corners have no any radius. Why? And how to fix it?










share|improve this question













I have simple TextView. I want set simple colored background with round corners.



I try two ways.



public static Drawable createRoundDrawable(int color, float radius) {
GradientDrawable drawable = new GradientDrawable();
drawable.setShape(GradientDrawable.RECTANGLE);
drawable.setColor(color);
drawable.setCornerRadius(radius);
return drawable;
}


And



public static Drawable createRoundDrawable(int color, float radius) {
PaintDrawable drawable = new PaintDrawable(color);
drawable.setCornerRadius(radius);
return drawable;
}


I create drawable with createRoundDrawable method and set background to textView by



textView.setBackground(background);


So, background applied to textView, but corners have no any radius. Why? And how to fix it?







android






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 22 at 10:04









Yura Shinkarev

2,77722444




2,77722444












  • I tried your code in my example project. It works for me. Can you share another information to us, for example your xml file, which api used etc.
    – enesgonez
    Nov 22 at 10:50


















  • I tried your code in my example project. It works for me. Can you share another information to us, for example your xml file, which api used etc.
    – enesgonez
    Nov 22 at 10:50
















I tried your code in my example project. It works for me. Can you share another information to us, for example your xml file, which api used etc.
– enesgonez
Nov 22 at 10:50




I tried your code in my example project. It works for me. Can you share another information to us, for example your xml file, which api used etc.
– enesgonez
Nov 22 at 10:50












4 Answers
4






active

oldest

votes

















up vote
0
down vote













Better use a drawable XML file with rounded corner like this



<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle">
<!-- you can use any color you want-->
<solid android:color="@color/colorPrimary" />
<corners android:radius="20dp" />
</shape>


Then set the file as drawable






share|improve this answer




























    up vote
    0
    down vote













    Remove



     drawable.setShape(GradientDrawable.RECTANGLE);


    it should be



       public static Drawable createRoundDrawable(int color, float radius) {
    GradientDrawable drawable = new GradientDrawable();
    drawable.setColor(color);
    drawable.setCornerRadius(radius);
    return drawable;
    }





    share|improve this answer




























      up vote
      0
      down vote













      you can try this:
      create a new Drawable resource file in drawable folder give it a name say custom_background.xml with the following content:



      <?xml version="1.0" encoding="utf-8"?>
      <shape
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:shape="rectangle">
      <corners android:radius="15dp" />
      <solid
      android:color="#FFFFFF" />
      </shape>


      give radius and color of your choice and in layout file of textview add background tag
      android:background="@drawable/custom_background"






      share|improve this answer




























        up vote
        0
        down vote













        Try setting corner to individual corner with setCornerRadii()



        public static Drawable createRoundDrawable(int color, float radius) {
        GradientDrawable drawable = new GradientDrawable();
        drawable.setShape(GradientDrawable.RECTANGLE);
        drawable.setColor(color);
        drawable.setCornerRadii(new float { radius, radius, radius, radius, radius, radius, radius, radius});
        return drawable;
        }





        share|improve this answer





















          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53428407%2fcan-not-round-corners-of-drawable-with-method-setcornerradius%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          4 Answers
          4






          active

          oldest

          votes








          4 Answers
          4






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          up vote
          0
          down vote













          Better use a drawable XML file with rounded corner like this



          <?xml version="1.0" encoding="utf-8"?>
          <shape xmlns:android="http://schemas.android.com/apk/res/android"
          android:padding="10dp"
          android:shape="rectangle">
          <!-- you can use any color you want-->
          <solid android:color="@color/colorPrimary" />
          <corners android:radius="20dp" />
          </shape>


          Then set the file as drawable






          share|improve this answer

























            up vote
            0
            down vote













            Better use a drawable XML file with rounded corner like this



            <?xml version="1.0" encoding="utf-8"?>
            <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:padding="10dp"
            android:shape="rectangle">
            <!-- you can use any color you want-->
            <solid android:color="@color/colorPrimary" />
            <corners android:radius="20dp" />
            </shape>


            Then set the file as drawable






            share|improve this answer























              up vote
              0
              down vote










              up vote
              0
              down vote









              Better use a drawable XML file with rounded corner like this



              <?xml version="1.0" encoding="utf-8"?>
              <shape xmlns:android="http://schemas.android.com/apk/res/android"
              android:padding="10dp"
              android:shape="rectangle">
              <!-- you can use any color you want-->
              <solid android:color="@color/colorPrimary" />
              <corners android:radius="20dp" />
              </shape>


              Then set the file as drawable






              share|improve this answer












              Better use a drawable XML file with rounded corner like this



              <?xml version="1.0" encoding="utf-8"?>
              <shape xmlns:android="http://schemas.android.com/apk/res/android"
              android:padding="10dp"
              android:shape="rectangle">
              <!-- you can use any color you want-->
              <solid android:color="@color/colorPrimary" />
              <corners android:radius="20dp" />
              </shape>


              Then set the file as drawable







              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered Nov 22 at 10:07









              Bibaswann Bandyopadhyay

              2,4482421




              2,4482421
























                  up vote
                  0
                  down vote













                  Remove



                   drawable.setShape(GradientDrawable.RECTANGLE);


                  it should be



                     public static Drawable createRoundDrawable(int color, float radius) {
                  GradientDrawable drawable = new GradientDrawable();
                  drawable.setColor(color);
                  drawable.setCornerRadius(radius);
                  return drawable;
                  }





                  share|improve this answer

























                    up vote
                    0
                    down vote













                    Remove



                     drawable.setShape(GradientDrawable.RECTANGLE);


                    it should be



                       public static Drawable createRoundDrawable(int color, float radius) {
                    GradientDrawable drawable = new GradientDrawable();
                    drawable.setColor(color);
                    drawable.setCornerRadius(radius);
                    return drawable;
                    }





                    share|improve this answer























                      up vote
                      0
                      down vote










                      up vote
                      0
                      down vote









                      Remove



                       drawable.setShape(GradientDrawable.RECTANGLE);


                      it should be



                         public static Drawable createRoundDrawable(int color, float radius) {
                      GradientDrawable drawable = new GradientDrawable();
                      drawable.setColor(color);
                      drawable.setCornerRadius(radius);
                      return drawable;
                      }





                      share|improve this answer












                      Remove



                       drawable.setShape(GradientDrawable.RECTANGLE);


                      it should be



                         public static Drawable createRoundDrawable(int color, float radius) {
                      GradientDrawable drawable = new GradientDrawable();
                      drawable.setColor(color);
                      drawable.setCornerRadius(radius);
                      return drawable;
                      }






                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered Nov 22 at 10:08









                      sasikumar

                      7,33211126




                      7,33211126






















                          up vote
                          0
                          down vote













                          you can try this:
                          create a new Drawable resource file in drawable folder give it a name say custom_background.xml with the following content:



                          <?xml version="1.0" encoding="utf-8"?>
                          <shape
                          xmlns:android="http://schemas.android.com/apk/res/android"
                          android:shape="rectangle">
                          <corners android:radius="15dp" />
                          <solid
                          android:color="#FFFFFF" />
                          </shape>


                          give radius and color of your choice and in layout file of textview add background tag
                          android:background="@drawable/custom_background"






                          share|improve this answer

























                            up vote
                            0
                            down vote













                            you can try this:
                            create a new Drawable resource file in drawable folder give it a name say custom_background.xml with the following content:



                            <?xml version="1.0" encoding="utf-8"?>
                            <shape
                            xmlns:android="http://schemas.android.com/apk/res/android"
                            android:shape="rectangle">
                            <corners android:radius="15dp" />
                            <solid
                            android:color="#FFFFFF" />
                            </shape>


                            give radius and color of your choice and in layout file of textview add background tag
                            android:background="@drawable/custom_background"






                            share|improve this answer























                              up vote
                              0
                              down vote










                              up vote
                              0
                              down vote









                              you can try this:
                              create a new Drawable resource file in drawable folder give it a name say custom_background.xml with the following content:



                              <?xml version="1.0" encoding="utf-8"?>
                              <shape
                              xmlns:android="http://schemas.android.com/apk/res/android"
                              android:shape="rectangle">
                              <corners android:radius="15dp" />
                              <solid
                              android:color="#FFFFFF" />
                              </shape>


                              give radius and color of your choice and in layout file of textview add background tag
                              android:background="@drawable/custom_background"






                              share|improve this answer












                              you can try this:
                              create a new Drawable resource file in drawable folder give it a name say custom_background.xml with the following content:



                              <?xml version="1.0" encoding="utf-8"?>
                              <shape
                              xmlns:android="http://schemas.android.com/apk/res/android"
                              android:shape="rectangle">
                              <corners android:radius="15dp" />
                              <solid
                              android:color="#FFFFFF" />
                              </shape>


                              give radius and color of your choice and in layout file of textview add background tag
                              android:background="@drawable/custom_background"







                              share|improve this answer












                              share|improve this answer



                              share|improve this answer










                              answered Nov 22 at 10:13









                              Srijay

                              137




                              137






















                                  up vote
                                  0
                                  down vote













                                  Try setting corner to individual corner with setCornerRadii()



                                  public static Drawable createRoundDrawable(int color, float radius) {
                                  GradientDrawable drawable = new GradientDrawable();
                                  drawable.setShape(GradientDrawable.RECTANGLE);
                                  drawable.setColor(color);
                                  drawable.setCornerRadii(new float { radius, radius, radius, radius, radius, radius, radius, radius});
                                  return drawable;
                                  }





                                  share|improve this answer

























                                    up vote
                                    0
                                    down vote













                                    Try setting corner to individual corner with setCornerRadii()



                                    public static Drawable createRoundDrawable(int color, float radius) {
                                    GradientDrawable drawable = new GradientDrawable();
                                    drawable.setShape(GradientDrawable.RECTANGLE);
                                    drawable.setColor(color);
                                    drawable.setCornerRadii(new float { radius, radius, radius, radius, radius, radius, radius, radius});
                                    return drawable;
                                    }





                                    share|improve this answer























                                      up vote
                                      0
                                      down vote










                                      up vote
                                      0
                                      down vote









                                      Try setting corner to individual corner with setCornerRadii()



                                      public static Drawable createRoundDrawable(int color, float radius) {
                                      GradientDrawable drawable = new GradientDrawable();
                                      drawable.setShape(GradientDrawable.RECTANGLE);
                                      drawable.setColor(color);
                                      drawable.setCornerRadii(new float { radius, radius, radius, radius, radius, radius, radius, radius});
                                      return drawable;
                                      }





                                      share|improve this answer












                                      Try setting corner to individual corner with setCornerRadii()



                                      public static Drawable createRoundDrawable(int color, float radius) {
                                      GradientDrawable drawable = new GradientDrawable();
                                      drawable.setShape(GradientDrawable.RECTANGLE);
                                      drawable.setColor(color);
                                      drawable.setCornerRadii(new float { radius, radius, radius, radius, radius, radius, radius, radius});
                                      return drawable;
                                      }






                                      share|improve this answer












                                      share|improve this answer



                                      share|improve this answer










                                      answered Nov 22 at 10:14









                                      Karan Mer

                                      3,80232762




                                      3,80232762






























                                          draft saved

                                          draft discarded




















































                                          Thanks for contributing an answer to Stack Overflow!


                                          • Please be sure to answer the question. Provide details and share your research!

                                          But avoid



                                          • Asking for help, clarification, or responding to other answers.

                                          • Making statements based on opinion; back them up with references or personal experience.


                                          To learn more, see our tips on writing great answers.





                                          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                                          Please pay close attention to the following guidance:


                                          • Please be sure to answer the question. Provide details and share your research!

                                          But avoid



                                          • Asking for help, clarification, or responding to other answers.

                                          • Making statements based on opinion; back them up with references or personal experience.


                                          To learn more, see our tips on writing great answers.




                                          draft saved


                                          draft discarded














                                          StackExchange.ready(
                                          function () {
                                          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53428407%2fcan-not-round-corners-of-drawable-with-method-setcornerradius%23new-answer', 'question_page');
                                          }
                                          );

                                          Post as a guest















                                          Required, but never shown





















































                                          Required, but never shown














                                          Required, but never shown












                                          Required, but never shown







                                          Required, but never shown

































                                          Required, but never shown














                                          Required, but never shown












                                          Required, but never shown







                                          Required, but never shown







                                          Popular posts from this blog

                                          Trompette piccolo

                                          Slow SSRS Report in dynamic grouping and multiple parameters

                                          Simon Yates (cyclisme)