Hi,
I am creating list of menu items programatically with my function , like this:
For each item I load layout which is created in designer.
Everythink work properly if I debug project step by step.
But the problem is , that this icons are not showed (rendered), if I run applicaton immediadly (without ste by step).
How to refresh imageview ?
I am creating list of menu items programatically with my function , like this:
B4X:
Sub add_menuitem(inp_ico As String , inp_text As String , inp_obj As Panel )
Dim item_menu, x As Panel
Dim item_lbl_obj As Label
Dim item_img As ImageView
item_menu.Initialize("item_menu")
item_menu.LoadLayout("item_menu")
item_menu.Height = inp_height
x = item_menu.GetView(0)
'======= icon
item_img = x.GetView(0)
AjustaImageView(item_img,File.DirAssets,inp_ico)
'======= text
item_lbl_obj = x.GetView(1)
item_lbl_obj.Text = inp_text
inp_obj.AddView(item_menu, 0dip, inp_obj.height, inp_width ,inp_height)
inp_obj.Height = inp_obj.Height + item_menu.Height
End Sub
B4X:
Sub AjustaImageView(Imv As ImageView, Dir As String, FileName As String)
Private bmp As Bitmap = LoadBitmap(Dir, FileName)
Dim Delta, Height, Width As Int
If bmp.Width / bmp.Height > Imv.Width / Imv.Height Then
Height = bmp.Height / bmp.Width * Imv.Width
Delta = (Imv.Height - Height) / 2
Imv.Height = Height
Imv.Top = Imv.Top + Delta
Else
Width = bmp.Width / bmp.Height * Imv.Height
Delta = (Imv.Width - Width) / 2
Imv.Width = Width
Imv.Left = Imv.Left + Delta
End If
Imv.Bitmap = bmp
End Sub
For each item I load layout which is created in designer.
Everythink work properly if I debug project step by step.
But the problem is , that this icons are not showed (rendered), if I run applicaton immediadly (without ste by step).
How to refresh imageview ?