German Hintergrund "kacheln"

peternmb

Well-Known Member
Licensed User
Longtime User
Hallo, gibt es eine Möglichkeit, um den Hintergrund ähnlich wie es z.B. in HTML möglich ist zu "kacheln" (mit einem kleineren Bild immer wiederkehrend zu füllen)? Ich finde nur die Optionen "fill", "center" und "topleft".
 

klaus

Expert
Licensed User
Longtime User
Beiliegendes Beispiel zeigt es.
B4X:
Sub Globals
    Dim pnlTest As Panel
End Sub

Sub Activity_Create(FirstTime As Boolean)
    pnlTest.Initialize("")
    Activity.AddView(pnlTest, 0, 0, 100%x, 100%y)
    InitBackground
End Sub

Sub InitBackground
    Dim i, i0, j, j0, bh, bw As Int
    Dim bmpBild As Bitmap
    Dim cvsHintergrund As Canvas
    
    bmpBild.Initialize(File.DirAssets, "Rose.jpg")
    bh = bmpBild.Height
    bw = bmpBild.Width
    
    cvsHintergrund.Initialize(pnlTest)
    
    i0 = Ceil(pnlTest.Width / bw)
    j0 = Ceil(pnlTest.Height / bh)
    
    Dim rect1 As Rect
    rect1.Initialize(0, 0, bw, bh)
    For j = 0 To j0
        For i = 0 To i0
            rect1.Left = i * bw
            rect1.Right = rect1.Left + bw
            rect1.Top = j * bh
            rect1.Bottom = rect1.Top + bh
            cvsHintergrund.DrawBitmap(bmpBild, Null, rect1)
        Next
    Next
End Sub
Beste Grüsse.
 

Attachments

  • KachelHintergrund.zip
    9.3 KB · Views: 211

peternmb

Well-Known Member
Licensed User
Longtime User
Hallo Klaus,

herzlichen Dank für das (wie immer) klasse Beispiel :sign0098:

Ich glaube ohne deine Hilfe hätte ich schon lange die Lust an B4A verloren.
 
Top