1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Wie Bild auf ImageButton drehen bei fester screenOrientation?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Andro-medanebel, 11.04.2011.

  1. Andro-medanebel, 11.04.2011 #1
    Andro-medanebel

    Andro-medanebel Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    46
    Erhaltene Danke:
    0
    Registriert seit:
    09.10.2010
    Ich habe ein Feld aus ImageButtons.

    Die ImageButtons selbst sollen sich nicht drehen,
    wenn sich das Display dreht.

    Dafür habe ich
    Code:
    ...android:screenOrientation="portrait"...
    ins Manifest geschrieben.

    Die Bilder auf den ImageButtons drehen sich nun allerdings
    auch nicht mehr.

    Gibt es eine einfache Möglichkeit, zu erreichen, dass
    sich die ImageButtons selbst nicht drehen, wenn man
    das Display dreht, die Bilder auf den ImageButtons sich
    aber mitdrehen?
     
  2. Sabian, 12.04.2011 #2
    Sabian

    Sabian Junior Mitglied

    Beiträge:
    27
    Erhaltene Danke:
    2
    Registriert seit:
    21.12.2010
    Du könntest dir das bild vom imagebutton holen (button.getDrawable() oder so ähnlich war die methode) dann das bild mit einer matrix rotieren( rotate()) und wieder auf den button legen( button.setImageDrawable()).
    Kann sein das die methoden bischen anderst heißen, weiß sie nicht auswendig, sitze im zug, sorry.
     
  3. Andro-medanebel, 12.04.2011 #3
    Andro-medanebel

    Andro-medanebel Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    46
    Erhaltene Danke:
    0
    Registriert seit:
    09.10.2010
    Geht das nur mit Bitmaps? Dann kann
    ich es nicht verwenden, da ich jpgs habe
    und man wohl (wie z.B. hier
    Android - Working With Images In Android - Android Tutorials )
    eine Methode createBitmap benutzen muss.

    Ich habe es für meine jpgs so versucht:

    Code:
    //(Teil meiner for-Schleife)
    Matrix mtx = new Matrix();
    mtx.postRotate(90);
    mtx.setRotate(90);
    ib2[i].setImageMatrix(mtx);
    ib2[i].setImageDrawable(drawable_all[i]);
    
    aber die Bilder werden nicht gedreht.
    Geht das Bilderdrehen generell nicht für jpgs oder
    was muss ich am Code ändern, damit meine jpgs
    gedreht werden?
     
  4. Sabian, 12.04.2011 #4
    Sabian

    Sabian Junior Mitglied

    Beiträge:
    27
    Erhaltene Danke:
    2
    Registriert seit:
    21.12.2010
    So sollte es funktionieren:
    Code:
    Bitmap deinBild = ((BitmapDrawable)imageButton.getDrawable()).getBitmap();
    Matrix matrix = new Matrix();
    matrix.setRotate(90);
    Bitmap gedreht = Bitmap.createBitmap(deinBild, 0, 0, deinBild.getWidth(), deinBild.getHeight(), matrix, true);
    deinBild.recycle();
    imageButton.setImageBitmap(gedreht);
    
    imageButton musst du halt noch durch ib2 ersetzen:)
     
    Zuletzt bearbeitet: 12.04.2011
    Andro-medanebel bedankt sich.
  5. Andro-medanebel, 12.04.2011 #5
    Andro-medanebel

    Andro-medanebel Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    46
    Erhaltene Danke:
    0
    Registriert seit:
    09.10.2010


    Danke, hat funktioniert.:)
    Nur das recycle musste ich rausnehmen, da sonst jedes
    Bitmap nur einmal dargestellt wird. Für meine Zwecke
    soll jedes Bitmap zweimal dargestellt werden.
     

Diese Seite empfehlen