Alterar imagens no Layout Perioticamente

5 respostas
JavaThai

Rapaziada alguen sabe se existe alguma forma de trocar uma imagen por outra em um determinado ciclo de tempo?
Por exemplo : tenho a Imagem1 e depois de 1 minuto quero altera-lá para Imagem2 e vice e versa.
Será q existe alguma maneira???
tentei algumas coisa mas nenhuma funcionou, alguem pode me dar um Help???

5 Respostas

Marky.Vasconcelos

Voce pode ter uma Thread que gerencia a troca, e um Handler para sincronizar com a UI.

JavaThai

Boa Tarde Marky.Vasconcelos!
Mano eu fiz de outra forma está funcionando em parte.
Eu criei 2 layouts idênticos somente mudando a imagem que eu queria,o restante está idêntico e nesta telas eu tenho 3 links.
Só que esta dando um problema, quando a ação de time inicia e chama o outro layout os links não estão funcionado.
Sera que estou fazendo algo de errado,esquecendo de finalizar alguma ação???

public class MainActivity extends Activity {
    private Timer timerAtual = new Timer();
    private TimerTask task;
    private final Handler handler = new Handler();
    private int troca,click;
    private OnClickListener ocl1,ocl2,oc3;
    
	private ImageView 1;
	private ImageView 2;
	private ImageView 3;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		1 = (ImageView)findViewById(R.id.territorio);
		2     = (ImageView)findViewById(R.id.video);
		3  = (ImageView)findViewById(R.id.historia);
        
		oclChamar1 = new OnClickListener() {
			@Override
			public void onClick(View arg0) {
				Intent intent1= new Intent();
				intent1.setClassName("br.com.teste", "br.com.teste.TerritorioActivity");
				click = 1;
				startActivity(intent1);
			}
		};
        
		ocl2 = new OnClickListener() {
			@Override
			public void onClick(View arg0) {
				Intent intent2 = new Intent();
				intent2.setClassName("br.com.teste", "br.com.teste.VideoActivity");
				click = 1;
				startActivity(intent2);
			}
		};
        
		oclChamar3 = new OnClickListener(){
			@Override
			public void onClick(View arg0) {
				Intent intent3 = new Intent();
				intent3.setClassName("br.com.teste", "br.com.teste.HistoriaActivity");
				click = 1;
				startActivity(intent3);
			}
		};
		
		1.setOnClickListener(oclChamar1);
		2.setOnClickListener(oclChamar2);
		3.setOnClickListener(oclChamar3);
		ativaTimer();
	}
	
    private void ativaTimer(){
        task = new TimerTask() {
           public void run() {
               handler.post(new Runnable() {
	   	            public void run() {
	   	            	if(click != 1){
	   	                Log.d("Debug", "Vai Corintiaaa");
		   	                if(troca == 1){
		   	                	setContentView(R.layout.activity_main_second);
	                    		                    	        1.setOnClickListener(oclChamar1);
		                                               		2.setOnClickListener(oclChamar2);
		                                               		3.setOnClickListener(oclChamar3);
		   	                	troca = 0;
		   	                }else{
		   	                	setContentView(R.layout.activity_main);
  			   	         		       1.setOnClickListener(oclChamar1);
		                                               2.setOnClickListener(oclChamar2);
			                                       3.setOnClickListener(oclChamar3);
		   	                	troca = 1;
		   	                }
	   	                
	   	            	}
	   	            }
               });
            }};
        timerAtual.schedule(task, 8000, 8000);
     }
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
Marky.Vasconcelos

Voce não deve ficar invocando setContentView depois da tela estar construida, tente trocar os valores do objeto atual que voce tem na tela.

JavaThai

Então cara, eu estou querendo mudar uma imagem na tela por outra, mas em nenhum momento eu estou setando essa imagem no código.
Ela esta inserida no layout é possível setar está imagem no código???

Marky.Vasconcelos
ImageView.setImageResource(int resId)

Dai voce passa o id do R

Criado 18 de abril de 2013
Ultima resposta 19 de abr. de 2013
Respostas 5
Participantes 2