Image vom Button auslesen

  • 3 Antworten
  • Neuster Beitrag
D

Duckemai

Fortgeschrittenes Mitglied
Threadstarter
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!
 
N

Neeldarax

Fortgeschrittenes Mitglied
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
 
D

Duckemai

Fortgeschrittenes Mitglied
Threadstarter
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
 
S

Swoop

Fortgeschrittenes Mitglied
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 =)
 
Oben Unten