German Imageview und Gallerie

Silvio76

Member
Licensed User
Longtime User
Hallo,

ich sitze schon seit einer gefühlten Ewigkeit vor einem Problem.
Der User soll ein Bild aus der Gerätegallerie wählen und dies soll dann in einem Imageview angezeigt werden. Das funktioniert aber leider nur teilweise. Fotos, die ich direkt mit der internen Kamera gemacht habe, werden in dem Imageview nicht angezeigt, aber Fotos, die ich z.b. über Whatsapp geschickt bekommen habe, werden in dem Imageview angezeigt.
Könnt ihr mir helfen?

B4X:
Sub imgChooser_Result(Success As Boolean, Dir As String, FileName As String)

If Success Then
  
   imgbild.Bitmap = LoadBitmap(Dir, FileName)  
   imgbild.Gravity = Gravity.FILL
     
    Else
           ToastMessageShow("Kein Bild ausgewählt.", True)
    End If

   
End Sub

Vielen Dank bereits im voraus.
 

Silvio76

Member
Licensed User
Longtime User
So, den ganzen Abend habe ich damit verbracht... für alle, die es interessiert...
ich habe hier einen Codeschnipsel gefunden, der mir dass perfekt organisiert...
--- B4X --- Danke für den Codeschnipsel --- :)

B4X:
If Success Then
   imgbild.Bitmap = Null
   Private bmp As Bitmap = LoadBitmap(Dir, FileName)
    Private cvs As Canvas
    cvs.Initialize(imgbild)
    Dim rectDest As Rect
    Dim delta As Int
    If bmp.Width / bmp.Height > imgbild.Width / imgbild.Height Then
        delta = (imgbild.Height - bmp.Height / bmp.Width * imgbild.Width) / 2
        rectDest.Initialize(0, delta,imgbild.Width, imgbild.Height - delta)
        Else
        delta = (imgbild.Width - bmp.Width / bmp.Height * imgbild.Height) / 2
        rectDest.Initialize(delta, 0, imgbild.Width - delta, imgbild.Height)
        End If
        cvs.DrawBitmap(bmp, Null, rectDest)
    imgbild.Gravity = Gravity.Fill
    imgbild.Invalidate
 
    Dim tempbitmap As Bitmap
    tempbitmap = imgbild.Bitmap
    Dim out As OutputStream
    out = File.OpenOutput(File.DirRootExternal, "100.jpg", False)
    tempbitmap.WriteToStream(out, 100, "JPEG")
 
    out.Close
 
    Else
         ToastMessageShow("Kein Bild ausgewählt.", True)
   End If
 
Top