Sub CreateBitmapButton(cmd As Button, bmp As Bitmap, act As Activity)
Dim c As Canvas
Dim r1 As Rect
Dim r2 As Rect
Dim sld As StateListDrawable
'Create a temporary button and draw on it
Dim tmpbutton As Button
tmpbutton.Initialize("")
act.AddView(tmpbutton,0,0,cmd.Width,cmd.Height)
SetPressed(cmd, True)
DoEvents
c.Initialize(tmpbutton)
r1.Initialize(0,0,cmd.Width,cmd.Height)
r2.Initialize(7,7,cmd.Width-7dip,cmd.height-7dip)
sld.Initialize
c.DrawDrawable(cmd.Background,r1)
c.DrawBitmap(bmp,Null,r2)
tmpbutton.Invalidate
sld.AddState(sld.State_Pressed,tmpbutton.Background)
tmpbutton.RemoveView
'Force to pressed state
SetPressed(cmd, False)
DoEvents
tmpbutton.Initialize("")
act.AddView(tmpbutton,0,0,cmd.Width,cmd.Height)
c.Initialize(tmpbutton)
c.DrawDrawable(cmd.Background ,r1)
c.DrawBitmap(bmp,Null,r2)
tmpbutton.Invalidate
sld.AddState(sld.State_Enabled,tmpbutton.Background)
tmpbutton.RemoveView
SetPressed(cmd, False)
cmd.Background = sld
End Sub
Sub SetPressed(cmd As Button, Pressed As Boolean)
Dim ref As Reflector
ref.Target = cmd
ref.RunMethod2("setPressed", Pressed, "java.lang.boolean")
End Sub