I’m absolute beginner to mono for android.
Following buttons are created dynamically and assigned some background color.
How to assign black border with particular thickness to each button?(refer below screenshot).
Left image is how it looks now and right image is how it should look like.
I’ve referred this and this on SO, but they doesn’t provide the guidance I needed.
Any help appreciated…

EDIT
Code for setting Button Background :
int[] colors=GetColorForScrips(decimal.Parse(_result.Rows[i]["Change(%)"].ToString ()));
btn.SetBackgroundColor(Color.Rgb(colors[0],colors[1],colors[2]));
In GetColorForScrips(), I pass a float value, based on which RGB components are returned.
Note:
-
I’m using Mono for Android as my IDE and not Eclipse.
-
I’m assigning background color by using above mentioned code snippet.
-
If I use
btn.SetBackgroundDrawable(Resource.Drawable.Heatmap_Border);, it gives me error thatcan't convert from int to drawable. -
If I use
btn.SetBackgroundResource(Resource.Drawable.Heatmap_Border);, it gives me full black screen i.e. Buttons are clickable, but not visible.
Proposed output:
As shown in right image above, each button will have a particular background depending on some value. This background is set dynamically.
I also want to use black border across the button.
But I guess the big catch here is I can’t use any two from btn.SetBackgroundDrawable() OR btn.SetBackgroundResource() OR btn.SetBackgroundColor() together.
In such a scenario, only later will be implemented.
Any solution???
FINAL EDIT
As suggested by one of the users, this works perfectly… (GetColorForScrips() returns RGB value based on a Float value).
GradientDrawable drawable = new GradientDrawable();
drawable.SetShape(ShapeType.Rectangle);
drawable.SetStroke(1, Color.Black);
int[] colors=GetColorForScrips(decimal.Parse(result.Rows[i]["Change(%)"].ToString ()));
drawable.SetColor(Color.Rgb(colors[0],colors[1],colors[2]))
btn.SetBackgroundDrawable(drawable);
use this code
create one
button_bg.xmlfile in drawable folderinstead of this
use this as your button background like this