Image problem with ImageButtons

klaus

Expert
Licensed User
Longtime User
Hello Erel,
I have a problem with images in ImageButtons.
For the IconEdit program I am trying to merge all the images into one binary file and retrieve those in an ImageList in the program, original idea of Oran.
But there is a problem with images in ImageButtons.
I added some Buttons and ImageButtons in the joined ImageEmbedBuilderTest program with different tests and the problem.
- Run the program
- Click on Viewer
- Load the IconEdit.img file there are 48 images in
- Then on top you can display the different images (Item 13 Pen image)
- If you click on Button15 it's the problem the image is not recognized

Below the code for the different Buttons with tests
B4X:
Sub Button15_Click    ' problem
  ImageButton3.Image=IL1.Item(13)
End Sub

Sub Button16_Click    ' works
  IL2.Add(AppPath&"\btnPen.bmp")  ' original bitmap file
  ImageButton3.Image=IL2.Item(0)
End Sub

Sub Button17_Click  ' works
  Image1.Image=IL1.Item(13)         ' assign Item(13) to an Image object
  Il2.Add(Image1.Image)                ' assigning it to imageList
  ImageButton3.Image=IL2.Item(0)
End Sub

It seems that there is a bitmap format problem.
Can you please have a look at, thank you in advance.

Klaus
Switzerland
 

Attachments

  • ImageEmbedBuilderTest.zip
    36.5 KB · Views: 335

alfcen

Well-Known Member
Licensed User
Longtime User
Hallo Klaus,

It works if you uncheck the Transparent property of ImageButton3.
An image button appears to be sensitive to whether an image is
actually loaded or just being referenced to.

Cheers
Robert
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
As Robert mentioned there is a problem with loading an image when the transparent property is true.
Unlike the Image control the ImageButton doesn't create a copy of the image, therefore you should manually create such a copy if you get the image from an external library or an ImageList:
B4X:
Sub Button15_Click
    ImageButton3.Transparent = false
    ImageButton3.Image=IL1.Item(13)
    ImageButton3.Image = ImageButton3.Image 'Creates a new copy.
    ImageButton3.Transparent = true
End Sub

These two issues will probably be solved in the next update.
 
Top