German Größe von ImageView ändern

Discussion in 'German Forum' started by peternmb, Feb 28, 2015.

  1. peternmb

    peternmb Active Member Licensed User

    Hallo,

    ich zeige auf einem abgedunkelten Hintergrund ein JPG-Bild in einem ImageView an.
    Die Bilder haben eine unterschiedlich Größe, die App läuft immer im portrait-Format.

    Ich möchte die Bilder so anzeigen, dass unabhängfig von der Ausgangsgröße die maximale Breite oder Höhe 96%x sind. Kleinere Bilder sollen entsprechend vergrößert, größere verkleinert werden.

    Das Anzeigen in der Orginalgröße klappt problemlos, aber wie skaliere ich die Bilder?
    Code:
    Sub btnCV_Click   'jpg-Datei anzeigen
      '
      PnlBlack.Initialize("PnlBlack")
      
    Dim bgnd As ColorDrawable
      bgnd.Initialize( 
    Colors.ARGB(155,0,0,0),0)
      PnlBlack.Background = bgnd
      
    Activity.AddView(PnlBlack, 00100%x100%y)    
      
    '   
      ImageView1.Initialize("img1")
      ImageView1.Bitmap = 
    LoadBitmap(AppDir & "/Daten",jpgDatei)
      ImageView1.Gravity = 
    Gravity.TOP
      PnlBlack.AddView(ImageView1,
    2%x,15%y,96%x,96%x)  
      
    '   
    End Sub
     
  2. DonManfred

    DonManfred Expert Licensed User

    du kannst diese library ausprobieren, wenn Du magst. (bist der erste... Hab die lib noch ncicht veröffentlicht :D)

    Aktuell funktioniert die allerdings NUR mit Imageviews

    Vorgehensweise:
    Kopiere die folgenden Dateien in deinen Additional libraries Ordner:
    - uil.jar
    - uil.xml
    - universal-image-loader-1.9.3.jar

    Den Rest musst du dir aus dem Beispiel zusammensuchen

    ganz grob:
    Code:
    Sub Globals
        
    Dim il As uil
    Code:
    Sub Activity_Create(FirstTime As Boolean)
        
    'Do not forget to load the layout file created with the visual designer. For example:
        Activity.LoadLayout("Layout1")
        il.Initialize(
    "uil")
    Code:
    'Acceptable URIs examples
        '"http://site.com/image.png" // from Web
        '"file:///mnt/sdcard/image.png" // from SD card
        '"file:///mnt/sdcard/video.mp4" // from SD card (video thumbnail)
        '"content://media/external/images/media/13" // from content provider
        '"content://media/external/video/media/13" // from content provider (video thumbnail)
        '"assets://image.png" // from assets
        '"drawable://" + R.drawable.img // from drawables (non-9patch images)
        il.loadImg("http://snapshots.basic4android.de/IconButton001.png",ImageView1)
    Im grunde musst Du nur dafür sorgen das das Imageview an der richtigen Stelle und größe ist. Die Lib sollte sich selbstständig um die richtige skalierung kümmern.
     

    Attached Files:

    Last edited: Feb 28, 2015
    KMatle likes this.
  3. peternmb

    peternmb Active Member Licensed User

    DAs mit der Lib habe ich nicht hinbekommen, es kommt keine Fehlermeldung aber auch kein Bild.
    Ich habe aber einen Codeschnipsel von Klaus gefunden, der das perfekt macht:
    Code:
    Sub FitCenterBitmap(Imv As ImageView, Dir As String, FileName As String)
        
    Private bmp As Bitmap = LoadBitmap(Dir, FileName)
        
    Private cvs As Canvas
        cvs.Initialize(Imv)
        
    Dim rectDest As Rect
        
    Dim delta As Int
        
    If bmp.Width / bmp.Height > Imv.Width / Imv.Height Then
            delta = (Imv.Height - bmp.Height / bmp.Width * Imv.Width) / 
    2
            rectDest.Initialize(
    0, delta,Imv.Width, Imv.Height - delta)
            
    Else
            delta = (Imv.Width - bmp.Width / bmp.Height * Imv.Height) / 
    2
            rectDest.Initialize(delta, 
    0, Imv.Width - delta, Imv.Height)
            
    End If
            cvs.DrawBitmap(bmp, 
    Null, rectDest)
        Imv.Gravity = 
    Gravity.TOP
        Imv.Invalidate
    End Sub
    Nur das scheint noch nicht zu funktionieren, mein Bild wird nicht oben ausgerichtet:
    Code:
    Imv.Gravity = Gravity.TOP
     
  4. klaus

    klaus Expert Licensed User

    In dem Codesnippet könntest Du auch die Height und Top Properties der ImageView gemäss der Bitmapdimensionen anpassen.
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice