B4X:
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Dim obj As Reflector
Dim buttonpic As ImageView
Dim buttonlabel As Label
Dim myfont As Typeface
Dim c As Canvas
Dim Button1 As Button
Dim button2 As Button
End Sub
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
Activity.LoadLayout("Layout1")
myfont = Typeface.LoadFromAssets("ardelaney.ttf")
buttonpic.Left=3000
buttonlabel.Left=3000
Buttondraw(Button1,"Basic4Android",30,Colors.Blue)
'Usage : Buttondraw(Button name ,Button Text,Font size,Font color)
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Buttondraw(btn As Button,btntxt As String,fns As Int,cl As Int)
Dim bx,by As Int
Dim bdwEnabled As BitmapDrawable
buttonlabel.Text=btntxt
buttonlabel.TextSize=fns
Dim Height_, Width_ As Int
buttonlabel.Width = -2
buttonlabel.Height = -2
DoEvents
obj.Target = buttonlabel
Width_ = obj.RunMethod("getWidth")
Height_ = obj.RunMethod("getHeight")
buttonpic.Width=btn.Width
buttonpic.Height=btn.Height
buttonpic.Bitmap = LoadBitmap(File.Dirassets,"btn.png")
c.Initialize(buttonpic)
bx=(btn.Width-Width_)/2
by=(btn.Height+fns)/2
c.DrawText(btntxt,bx,by,myfont, fns, cl, "LEFT")
bdwEnabled.Initialize(buttonpic.Bitmap)
Dim bdwPressed As BitmapDrawable
buttonpic.Bitmap = LoadBitmap(File.Dirassets,"btn-down.png")
c.Initialize(buttonpic)
c.DrawText(btntxt,bx,by,myfont, fns, cl, "LEFT")
bdwPressed.Initialize(buttonpic.Bitmap)
Dim bdwdisabled As BitmapDrawable
buttonpic.Bitmap = LoadBitmap(File.Dirassets,"btn-disabled.png")
c.Initialize(buttonpic)
c.DrawText(btntxt,bx,by,myfont, fns, Colors.Gray, "LEFT")
bdwdisabled.Initialize(buttonpic.Bitmap)
Dim stdBitmap As StateListDrawable
stdBitmap.Initialize
Dim states(2) As Int
states(0) = stdBitmap.state_enabled
states(1) = -stdBitmap.state_pressed
stdBitmap.addState2(states, bdwEnabled)
Dim states(1) As Int
states(0) = stdBitmap.state_enabled
stdBitmap.addState2(states, bdwPressed)
Dim states(1) As Int
states(0) = stdBitmap.state_disabled
stdBitmap.addState2(states, bdwdisabled)
btn.background=stdBitmap
End Sub
Sub button2_Click
If Button1.Enabled= True Then
Button1.Enabled=False
button2.Text="Disabled"
Else
Button1.Enabled=True
button2.Text="Enabled"
End If
End Sub
You can add text and image on a button by using this code. Any suggestion or ideas are appreciated. I changed font because of the file size exceeded.
Attachments
Last edited: