German 3 Buttons zur Laufzeit ein Bild zuweisen

Lothar Kriegerow

Active Member
Hallo,

Ich versuche einem Button ein Bild zuzuweisen. Immer wenn ich auf ein Bild klicke, soll Blid1 erscheinen und alle anderen Bilder sollen Bild 2 bekommen.

Dem Button mittels Klick ein Bild zuzuweisen, hab ich hinbekommen, aber den anderen, nicht geklickten Buttons ein anderes Bild zuzuweisen, da tue ich mich noch schwer. Die Routine ClearButton

ist sicher einfacher zu schreiben. Zumal später noch einige Buttons hinzu kommen.

B4X:
Sub Globals
    'These global variables will be redeclared each time the activity is created.
  
    Private btn1 As B4XView
    Private btn2 As B4XView
    Private btn3 As B4XView
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("Layout")
    ClearButtons
End Sub

Sub btn_Click
    ClearButtons
    Private b As Button
    b=Sender
    Private bW As BitmapDrawable
    bW.Initialize(LoadBitmap(File.DirAssets, "b1.jpg"))
    b.Background = bW
End Sub


Sub ClearButtons
    Private bL As BitmapDrawable
    bL.Initialize(LoadBitmap(File.DirAssets, "b2.jpg"))
    'btn1.GetBitmap =bL Funtioniert nicht
    btn1.Color =Colors.LightGray
    btn2.Color =Colors.LightGray
    btn3.Color =Colors.LightGray
End Sub

Ich bin für jeden Tipp dankbar. Dem Button in dieser Routine ein Bild zuzuweisen, ist mir nicht gelungen.


Gruß Lothar
 

Attachments

  • Buttons mit Bild.zip
    10 KB · Views: 160

klaus

Expert
Licensed User
Longtime User
So ist es einfacher:
Und hier kannst Du den Vorteil von XUI und B4XViews sehen.

B4X:
Sub Globals
    Private btn1 As B4XView
    Private btn2 As B4XView
    Private btn3 As B4XView
    Private bmp1, bmp2 As Bitmap
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("Layout")
   
    'Bitmaps nur einmal laden
    bmp1 = LoadBitmapResize(File.DirAssets, "b1.jpg", btn1.Width, btn1.Height, True)
    bmp2 = LoadBitmapResize(File.DirAssets, "b2.jpg", btn1.Width, btn1.Height, True)

    ClearButtons
End Sub

Sub btn_Click
    ClearButtons
    Private btn As B4XView
    btn = Sender
    btn.SetBitmap(bmp1)
End Sub

Sub ClearButtons
    btn1.SetBitmap(bmp2)
    btn2.SetBitmap(bmp2)
    btn3.SetBitmap(bmp2)
End Sub
 

Attachments

  • Buttons mit Bild1.zip
    9.9 KB · Views: 164

Lothar Kriegerow

Active Member
Hallo Klaus,

ich habe mir das Sample installiert. Danke
(Aber ich sehe zwar den Unterschied - aber nicht den Unterschied zu B4XView. Das hatte ich doch auch schon genommen.)

Die Clearbuttons wollte ich mittels For - Next Schleife setzen. Habe es auch so mittlerweile hinbekommen.

Danke - Lothar

Nachtrag - JETZT VERSTEH ICH ES
 
Top