Seems to be working here. I changed the color with the designer and it works. Make sure that you also change the transparent value:
You should also be able to use a canvas with RadioButton. Make sure that the RadioButton is first initialized (if created programmatically) and added to the activity before initializing the canvas.
I can't get it to work. See my code below please. It should add a semi-transparent red background to the radiobuttons. You can see the result on my SE Xperia Arc S on the screenshot I took.
B4X:
Dim rdbDepartmentList As RadioButton: rdbDepartmentList.Initialize("rdbDepartmentList")
rdbDepartmentList.Text = objMap.Get("CONT_CODE"): rdbDepartmentList.Tag = objMap.Get("CONT_ID")
rdbDepartmentList.TextSize = 16
Dim objColor As ColorDrawable: objColor.Initialize(Colors.ARGB(150, 255, 0, 0), 10)
rdbDepartmentList.Background = objColor
vscDepartment.Panel.AddView(rdbDepartmentList, Design.Padding, intPosY, vscDepartment.Panel.Width, Design.LabelHeight)
Basic4android doesn't use XML for the layout. This solution will not work. Maybe you can create a transparent radiobutton and put it over a panel or instead put a semi transparent panel over the radiobutton.
I've added a panel behind the radiobutton. This works fine, but I need to create an extra view per radiobutton this way. This results in a performance penalty. My Xperia is quite fast (1.4GHz) so here it is not noticable. I'll have to test this further. Thanks for the tip and help.