getResourcesID vom Drawable im View

P

peacefish

Neues Mitglied
0
Hi,

bin noch relativ neu in der Java/Android Programmierung und habe mal eine kleine Frage. Ich möchte das in einem View dargestellte image Beim Klick auf diesen wechseln. Damit möchte ich sozusagen die Images die ich in r/drawable abgelegt habe durchklicken können.
der Wechsel auf ein bestimmtes image ist mir bereits gelungen:

view.setImageResource(R.drawable.imageDasIchSetzenMöchte);

Ich möchte aber sowas in dieser Art verwirklichen um das Image bei jedem Klick zu wechseln:

view.setImageResource(view./*getCurrentImageResource()++*/);

also benötige ich eine Funktion, die mir den Wert des Momentan im view dargestellten Images zurückgibt("getCurrentImageResource"). welche Funktion von view kann ich dazu verwenden?

r/drawable
Code:
  public static final class drawable {
        public static final int img1=0x7f020000;
        public static final int img2=0x7f020001;
...
       
    }

Vielen Dank für euere Hilfe!
 
Wenn du die Namen der Ressources kennst, bzw. das Schema (dein img1, img2, ... deutet darauf hin), dann kannst du dir die IDs über getIdentifier holen.
 
Ich würde das in etwa so machen:

Code:
public final static int[] ids = {
  R.drawable.img1, R.drawable.img2, ...
};

...
v.setImageDrawable( getResources().getDrawable(ids[current++ % ids.length]) );
 
Zuletzt bearbeitet:
Hey, vielen Dank für die schnelle Rückmeldung.

ich habe leider nicht ganz richtig ausgedrückt was ich eigentlich will. :)
hier mal ein Code beispiel.

Code:
public class PicturesActivity extends Activity implements OnClickListener,  {
      
     
    ImageView x0y0,x1y0,x2y0,x0y1,x1y1,x2y1,x0y2,x1y2,x2y2,x3y0;
        
    int i=0x7f020000-1;
      
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
             
    
        x0y0=(ImageView)findViewById(R.id.x0y0);
        ...    
           
               
        
        x0y0.setOnClickListener(this);
        ...
}
    

    public void onClick(View v) {
                
        i++;
        if(i==0x7f020002)//blende Icon aus :) 
        {    i++;        }
      
         
        
        if(v.getId()==R.id.x0y0)
        {        x0y0.setImageResource(i);}
        ...       
        
        /**
hier möchte ich über den view v die Imageresource ändern.
Da ich ansonsten für jeden neuen imageview eine neue Bedingung einführen muss. Das muss doch irgendwie eleganter möglich sein.

*/
                
        
        if(i==0x7f02000a)        {  i=0x7f020000-1;        }
         
                    
    }
}

Vielen Dank für euere Hilfe!
 
Hey,
noch ein kleiner Fragen Zuschlag.
Mein eigentliches Ziel ist das Programmieren eines Bahnschienenstreckeneditors für eine Modellbahn.

(Soll dem Streckeneditor von der Märklin CentralStation nachempfunden sein)

Das ganze soll vom Prinzip her wie folgt ablaufen(Siehe auch angehängte Skizze).

Ich bin mir noch nicht ganz darüber im Klaren, welches Layout man für eine solche Aufgabe eleganter weise verwendet.

Das layout soll horizontal und vertical scrollbar sein
und auch zoombar.

Jetzt Frage ich mich ob ich ein Table Layout oder ein Relative Layout verwenden soll.
Kann ich das Scrollen und Zoomen mit beiden verwirklichen?
oder gibt es einen komplett anderen Ansatz der hierfür eleganter/geeigneter ist?
Vorstellung.jpg

Vielen Dank Für euere Hilfe!
Vorstellung.jpg
 

Anhänge

  • Vorstellung.jpg
    Vorstellung.jpg
    348,6 KB · Aufrufe: 133

Ähnliche Themen

D
  • djsnoopy
Antworten
6
Aufrufe
617
djsnoopy
D
W
  • whazza
Antworten
0
Aufrufe
712
whazza
W
S
Antworten
8
Aufrufe
511
swa00
swa00
Zurück
Oben Unten