ImageView Bild ändern

  • 4 Antworten
  • Neuester Beitrag
Diskutiere ImageView Bild ändern im Android App Entwicklung im Bereich Betriebssysteme & Apps.
A

adriax

Ambitioniertes Mitglied
Hallo Leute,

unzwar habe ich folgende Frage...
Ich wollte eine Schere Stein Papier App bauen.
Nun gibt es eine Choose Activity, wo man auf einen von drei ImageButtons klicken soll ( Schere, Stein oder Papier ).
Durch den klick soll auf der nächsten Activity das Auswahlbild (z.B. Schere ) nochmal als ImageView hinterlegt werden.

Nun mein Problem das ich nicht weiß wo und wie ich dieses ImageView verändere...

Ich hoffe ihr könnt mir helfen...

Hier die derzeitigen Code Schnippsel...
Choose.java
Code:
package com.example.ssp;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ImageView;

public class Choose extends Activity implements OnClickListener{

	private ImageButton scissor;
	private ImageButton stone;
	private ImageButton paper;
	public static Integer choice;


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_choose);
		

		
		scissor = (ImageButton) findViewById(R.id.imageButton1);
		scissor.setOnClickListener(this);
		
		stone = (ImageButton) findViewById(R.id.imageButton2);
		stone.setOnClickListener(this);
		
		paper = (ImageButton) findViewById(R.id.imageButton3);
		paper.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				
				if( v == scissor){
					choice = 1;
					Intent myIntent = new Intent(Choose.this, Game_started.class);
					Choose.this.startActivity(myIntent);
					
				}
				if( v == stone){
					choice = 2;
					Intent myIntent = new Intent(Choose.this, Game_started.class);
					Choose.this.startActivity(myIntent);
				}
				if( v == paper){
				
					
					Drawable yourPaper;
					yourPaper = getResources().getDrawable(R.drawable.paper);
					ImageView yourChoice = (ImageView) findViewById(R.id.yourChoice);
					yourChoice.setImageDrawable(yourPaper);

					
					choice = 3;
					Intent myIntent = new Intent(Choose.this, Game_started.class);
					Choose.this.startActivity(myIntent);
					

				}
				
			}
		});
		
	

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.choose, menu);
		return true;
	}

	@Override
	public void onClick(View arg0) {
		
		
		
	}

}
Game_started.java
Code:
package com.example.ssp;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class Game_started extends Activity implements OnClickListener {

	public ImageView oppChoice;
	private Button button1;

	

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_game_started);


		oppChoice = (ImageView) findViewById(R.id.oppChoice);
		
		button1 = (Button) findViewById(R.id.button1);
		button1.setOnClickListener(this);
		
		
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.game_started, menu);
		return true;
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		
	}



}
 
StefMa

StefMa

Dauergast
Hi,

am einfachsten wäre es, wenn du deiner 2ten Activity (Game_started) einen String übergibst, mit dem Inhalt, der ausgewählt worden ist.

Wie du etwas an eine Activity weiter gibst findest du mit "android intent putextra()".

In der Game_started kannst du dann diesen wert wieder auslesen.
Dann steht da in deinem String z.B. schere.
Via 3 If's kannst du dann einfach unterscheiden.

Wie du einem ImageView ein Variables-Bild gibst findest du hier.

Gruß
 
A

adriax

Ambitioniertes Mitglied
das habe ich ja quasi schon mit der variable "choice" je nach Buttonklick kriegt sie einen wert zwischen 1 und 3.

ich hatte das eigentlich so geplant in der onCreate

Code:
if(Choose.choise.toString() == "3"){
				
				Toast.makeText(this, Choose.choise.toString(), Toast.LENGTH_SHORT).show();
				ImageView yourChoice = (ImageView) findViewById(R.id.yourChoice);
				
				Drawable yourPaper;
				yourPaper = getResources().getDrawable(R.drawable.paper);
				yourChoice.setImageDrawable(yourPaper);
		}
aber das funktionier irgentwie nicht, er ignoriert das einfach :(
 
StefMa

StefMa

Dauergast
Einen integer definiert man mit
Code:
int choise;
Außerdem. Warum sagst du
Code:
choise.toString()
?
Das ergibt keinen Sinn :D
Man kann auch direkt integer-Werte vergleichen
Code:
if(chois == 3) {
//do Anything
}
Gruß
 
A

adriax

Ambitioniertes Mitglied
so hab mir jetzt mal die if's zusammen gebastelt.

Code:
		if(Choose.choice == 1){


			yourChoice.setBackgroundResource(R.drawable.scissor); //ist derzeit nur ein test gewesen
			
		}
		if(Choose.choice == 2){
		
			yourChoice.setBackgroundResource(R.drawable.stone); //ist derzeit nur ein test gewesen
		
		}
		if(Choose.choice == 3){
		
			yourChoice.setImageDrawable(yourPaper); // Hier der eigentliche Versuch^^

		}
jetzt weiß ich nur nich ganz wohin damit :(

und vorallem wohin mit dem
Code:
Drawable yourPaper;
yourPaper = getResources().getDrawable(R.drawable.paper);
ImageView yourChoice = (ImageView) findViewById(R.id.yourChoice);

EDIT!!!!
Hat sich erledigt^^ dein link hat mir weitergeholfen^^ habs ins onCreate geklattscht^^ mit nem

yourChoice.setImageDrawable(getResources().getDrawable(R.drawable.paper));

Vielen Dank ;-)
 
Zuletzt bearbeitet: