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

Image vom Button auslesen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Duckemai, 16.09.2011.

  1. Duckemai, 16.09.2011 #1
    Duckemai

    Duckemai Threadstarter Erfahrener Benutzer

    Beiträge:
    227
    Erhaltene Danke:
    6
    Registriert seit:
    05.04.2010
    Phone:
    Nexus
    Hallo zusammen,

    ich habe einen Button, auf den ich ein Image abgelegt habe.

    meinButton.setImageResource(R.drawable.image_1);

    Nun möchte ich auf diesem Button das Image ändern. Also zB image_2.png
    darauflegen. Dafür müsste ich aber vorher auslesen, ob image_2 schon
    auf dem Button liegt. Dann müsste er nämlich wieder image_1 drauflegen.

    Habe es so versucht:
    if (meinButton.getBackground().equals(R.drawable.image_1)){
    ...dann ändere in image_2 ansonsten setze image_1

    Geht aber nicht, da meinButton.getBackground() eine andere ID hat als
    die einzelne image_1.png. Selbst wenn auf dem Button die image_1 draufliegt, schlägt der Vergleich fehl. Weiß jemand wie ich diesen Vergleich richtigerweise durchführen muss?

    Vielen Dank!
     
  2. Neeldarax, 16.09.2011 #2
    Neeldarax

    Neeldarax Erfahrener Benutzer

    Beiträge:
    170
    Erhaltene Danke:
    31
    Registriert seit:
    07.12.2010
    Hi Duckemai,

    Code:
     if (meinButton.getBackground().equals(R.drawable.imag  e_1)){ 
    Da kann ja was nicht stimmen. Das eine ist ein Drawable und das andere ein int. So kannst du nicht vergleichen.

    Darüber hinaus ist deine Idee Performance und Speicher aufwändig.
    Ich würde ein Flag zB ein boolean setzten. Dieses ändert sich mit dem Drawable.

    in Pseudocode:
    Code:
    wenn boolean == true, dann ist drawable1, setzte drawable2 und switche boolen auf false
    wenn boolean == false, dann ist drawable2, setzte drawable2 und switche boolean auf true
    Würde dich nur eine weitere Variable kosten. Hilft dir das weiter?

    regards
     
    Duckemai bedankt sich.
  3. Duckemai, 16.09.2011 #3
    Duckemai

    Duckemai Threadstarter Erfahrener Benutzer

    Beiträge:
    227
    Erhaltene Danke:
    6
    Registriert seit:
    05.04.2010
    Phone:
    Nexus
    Hi,

    ich dachte, eine Drawable wäre ebenfalls (intern) eine int.
    Sie hat ja wohl auch ein Id. Aber unabhängig von der Image auf dem Button.

    Dein Ansatz hilf mir durchaus weiter. Habe es nun aber mit 2 unabhängigen
    ImageButtons gelöst die ich mal ein- mal ausblende.

    Danke!

    Ducki
     
  4. Swoop, 19.09.2011 #4
    Swoop

    Swoop Android-Hilfe.de Mitglied

    Beiträge:
    115
    Erhaltene Danke:
    4
    Registriert seit:
    20.05.2011
    Phone:
    Nexus S
    mal unabhängig von dem das ein Drawable kein int sein kann, vergleicht man int nicht mit equals.

    Einfache Datentypen int, double oder chars.
    Objekte Strings, Selbst erstellte Objekte oder Drawables müssen mit equals verglichen werden.

    Ein Drawable ist ein Object und besitzt eine ID =)
     

Diese Seite empfehlen