How to create ripple with corner radius programmatically?
There are some similar questions. But they are not resolved!
Set RippleDrawable corner radius programmatically
I know that this behaviour can be done using xml file. But I must it programmatically.
My code is below:
GradientDrawable gd = new GradientDrawable();
gd.setColor(Color.YELLOW);
gd.setStroke(2, Color.RED);
gd.setCornerRadius(45.0f);
view.setBackground(gd);
int colors = new intColor.GRAY;
int states = new int new int;
ColorStateList stateList = new ColorStateList(states, colors);
Drawable mask = getResources().getDrawable(R.drawable.icon1);
RippleDrawable rippleDrawableBackgorund = new RippleDrawable(stateList, view.getBackground(), mask);
view.setBackground(rippleDrawableBackgorund);
Screenshot is below for pressed state:
How can I set borderRadius for RippleDrawable? Also, rippleDrawableBackgorund.setRadius
changes this effect for hover state.
android-layout ripple android-background rippledrawable
add a comment |
There are some similar questions. But they are not resolved!
Set RippleDrawable corner radius programmatically
I know that this behaviour can be done using xml file. But I must it programmatically.
My code is below:
GradientDrawable gd = new GradientDrawable();
gd.setColor(Color.YELLOW);
gd.setStroke(2, Color.RED);
gd.setCornerRadius(45.0f);
view.setBackground(gd);
int colors = new intColor.GRAY;
int states = new int new int;
ColorStateList stateList = new ColorStateList(states, colors);
Drawable mask = getResources().getDrawable(R.drawable.icon1);
RippleDrawable rippleDrawableBackgorund = new RippleDrawable(stateList, view.getBackground(), mask);
view.setBackground(rippleDrawableBackgorund);
Screenshot is below for pressed state:
How can I set borderRadius for RippleDrawable? Also, rippleDrawableBackgorund.setRadius
changes this effect for hover state.
android-layout ripple android-background rippledrawable
Kind of duplicate of stackoverflow.com/questions/35388949/…. It seems you can't provide a corner radius but may provide a mask to restrict the ripple's shape: "At run time, a single layer may be set as the mask using setId(..., android.R.id.mask) or an existing mask layer may be replaced using setDrawableByLayerId(android.R.id.mask, ...). ".
– JimmyB
Nov 15 '18 at 11:22
Not duplicate. I want to create programmatically not xml.
– us2956
Nov 15 '18 at 11:28
1
But you can set up the drawable in the same way, through similarly named methods, as in the XML.
– JimmyB
Nov 15 '18 at 11:30
add a comment |
There are some similar questions. But they are not resolved!
Set RippleDrawable corner radius programmatically
I know that this behaviour can be done using xml file. But I must it programmatically.
My code is below:
GradientDrawable gd = new GradientDrawable();
gd.setColor(Color.YELLOW);
gd.setStroke(2, Color.RED);
gd.setCornerRadius(45.0f);
view.setBackground(gd);
int colors = new intColor.GRAY;
int states = new int new int;
ColorStateList stateList = new ColorStateList(states, colors);
Drawable mask = getResources().getDrawable(R.drawable.icon1);
RippleDrawable rippleDrawableBackgorund = new RippleDrawable(stateList, view.getBackground(), mask);
view.setBackground(rippleDrawableBackgorund);
Screenshot is below for pressed state:
How can I set borderRadius for RippleDrawable? Also, rippleDrawableBackgorund.setRadius
changes this effect for hover state.
android-layout ripple android-background rippledrawable
There are some similar questions. But they are not resolved!
Set RippleDrawable corner radius programmatically
I know that this behaviour can be done using xml file. But I must it programmatically.
My code is below:
GradientDrawable gd = new GradientDrawable();
gd.setColor(Color.YELLOW);
gd.setStroke(2, Color.RED);
gd.setCornerRadius(45.0f);
view.setBackground(gd);
int colors = new intColor.GRAY;
int states = new int new int;
ColorStateList stateList = new ColorStateList(states, colors);
Drawable mask = getResources().getDrawable(R.drawable.icon1);
RippleDrawable rippleDrawableBackgorund = new RippleDrawable(stateList, view.getBackground(), mask);
view.setBackground(rippleDrawableBackgorund);
Screenshot is below for pressed state:
How can I set borderRadius for RippleDrawable? Also, rippleDrawableBackgorund.setRadius
changes this effect for hover state.
android-layout ripple android-background rippledrawable
android-layout ripple android-background rippledrawable
asked Nov 15 '18 at 11:11
us2956us2956
14910
14910
Kind of duplicate of stackoverflow.com/questions/35388949/…. It seems you can't provide a corner radius but may provide a mask to restrict the ripple's shape: "At run time, a single layer may be set as the mask using setId(..., android.R.id.mask) or an existing mask layer may be replaced using setDrawableByLayerId(android.R.id.mask, ...). ".
– JimmyB
Nov 15 '18 at 11:22
Not duplicate. I want to create programmatically not xml.
– us2956
Nov 15 '18 at 11:28
1
But you can set up the drawable in the same way, through similarly named methods, as in the XML.
– JimmyB
Nov 15 '18 at 11:30
add a comment |
Kind of duplicate of stackoverflow.com/questions/35388949/…. It seems you can't provide a corner radius but may provide a mask to restrict the ripple's shape: "At run time, a single layer may be set as the mask using setId(..., android.R.id.mask) or an existing mask layer may be replaced using setDrawableByLayerId(android.R.id.mask, ...). ".
– JimmyB
Nov 15 '18 at 11:22
Not duplicate. I want to create programmatically not xml.
– us2956
Nov 15 '18 at 11:28
1
But you can set up the drawable in the same way, through similarly named methods, as in the XML.
– JimmyB
Nov 15 '18 at 11:30
Kind of duplicate of stackoverflow.com/questions/35388949/…. It seems you can't provide a corner radius but may provide a mask to restrict the ripple's shape: "At run time, a single layer may be set as the mask using setId(..., android.R.id.mask) or an existing mask layer may be replaced using setDrawableByLayerId(android.R.id.mask, ...). ".
– JimmyB
Nov 15 '18 at 11:22
Kind of duplicate of stackoverflow.com/questions/35388949/…. It seems you can't provide a corner radius but may provide a mask to restrict the ripple's shape: "At run time, a single layer may be set as the mask using setId(..., android.R.id.mask) or an existing mask layer may be replaced using setDrawableByLayerId(android.R.id.mask, ...). ".
– JimmyB
Nov 15 '18 at 11:22
Not duplicate. I want to create programmatically not xml.
– us2956
Nov 15 '18 at 11:28
Not duplicate. I want to create programmatically not xml.
– us2956
Nov 15 '18 at 11:28
1
1
But you can set up the drawable in the same way, through similarly named methods, as in the XML.
– JimmyB
Nov 15 '18 at 11:30
But you can set up the drawable in the same way, through similarly named methods, as in the XML.
– JimmyB
Nov 15 '18 at 11:30
add a comment |
1 Answer
1
active
oldest
votes
This guide is save my hours :)
http://blog.blundellapps.co.uk/tut-programmatically-create-a-rippledrawable-of-any-color/
Use mask parameter of RippleDrawable constructor.
private static Drawable getRippleColor(int color)
float outerRadii = new float[8];
Arrays.fill(outerRadii, 3);
RoundRectShape r = new RoundRectShape(outerRadii, null, null);
ShapeDrawable shapeDrawable = new ShapeDrawable(r);
shapeDrawable.getPaint().setColor(color);
return shapeDrawable;
add a comment |
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',
autoActivateHeartbeat: false,
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53318189%2fhow-to-create-ripple-with-corner-radius-programmatically%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
This guide is save my hours :)
http://blog.blundellapps.co.uk/tut-programmatically-create-a-rippledrawable-of-any-color/
Use mask parameter of RippleDrawable constructor.
private static Drawable getRippleColor(int color)
float outerRadii = new float[8];
Arrays.fill(outerRadii, 3);
RoundRectShape r = new RoundRectShape(outerRadii, null, null);
ShapeDrawable shapeDrawable = new ShapeDrawable(r);
shapeDrawable.getPaint().setColor(color);
return shapeDrawable;
add a comment |
This guide is save my hours :)
http://blog.blundellapps.co.uk/tut-programmatically-create-a-rippledrawable-of-any-color/
Use mask parameter of RippleDrawable constructor.
private static Drawable getRippleColor(int color)
float outerRadii = new float[8];
Arrays.fill(outerRadii, 3);
RoundRectShape r = new RoundRectShape(outerRadii, null, null);
ShapeDrawable shapeDrawable = new ShapeDrawable(r);
shapeDrawable.getPaint().setColor(color);
return shapeDrawable;
add a comment |
This guide is save my hours :)
http://blog.blundellapps.co.uk/tut-programmatically-create-a-rippledrawable-of-any-color/
Use mask parameter of RippleDrawable constructor.
private static Drawable getRippleColor(int color)
float outerRadii = new float[8];
Arrays.fill(outerRadii, 3);
RoundRectShape r = new RoundRectShape(outerRadii, null, null);
ShapeDrawable shapeDrawable = new ShapeDrawable(r);
shapeDrawable.getPaint().setColor(color);
return shapeDrawable;
This guide is save my hours :)
http://blog.blundellapps.co.uk/tut-programmatically-create-a-rippledrawable-of-any-color/
Use mask parameter of RippleDrawable constructor.
private static Drawable getRippleColor(int color)
float outerRadii = new float[8];
Arrays.fill(outerRadii, 3);
RoundRectShape r = new RoundRectShape(outerRadii, null, null);
ShapeDrawable shapeDrawable = new ShapeDrawable(r);
shapeDrawable.getPaint().setColor(color);
return shapeDrawable;
edited Nov 15 '18 at 15:52
answered Nov 15 '18 at 11:32
us2956us2956
14910
14910
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53318189%2fhow-to-create-ripple-with-corner-radius-programmatically%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
Kind of duplicate of stackoverflow.com/questions/35388949/…. It seems you can't provide a corner radius but may provide a mask to restrict the ripple's shape: "At run time, a single layer may be set as the mask using setId(..., android.R.id.mask) or an existing mask layer may be replaced using setDrawableByLayerId(android.R.id.mask, ...). ".
– JimmyB
Nov 15 '18 at 11:22
Not duplicate. I want to create programmatically not xml.
– us2956
Nov 15 '18 at 11:28
1
But you can set up the drawable in the same way, through similarly named methods, as in the XML.
– JimmyB
Nov 15 '18 at 11:30