Buscar

pdm_aula07_ProgressDialog

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PDM - Aula07- Ver 01 - 18/10/2012 09:42
Programação de Dispositivos Móveis
Aula 07
Interface Gráfica – ProgressDialog
ProgressDialog
Janela para mostrar o progresso de uma operação
Como usar sem os métodos anteriores
Mostrar o Dialog
dialog = ProgressDialog.show(contexto, titulo, msg, bool, indet);
indet = se é indeterminado ou não (percentual)
Feche o Dialog, quando concluir
dialog.dismiss();
Alterar o progresso (se indet = true)
dialog.setProgress(int v) // v entre 0 e 10000
Continuação da Aplicação Android (Aula07B)
O aplicativo que agora vai permitir o usuário verificar a funcionalidade do ProgressDialog.
Código – Aula07B ProgressDialog
	
Listagem 1. exemplo_progressdialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent" android:layout_height="fill_parent" >
	
 <ImageView android:id="@+id/img"
		android:layout_width="fill_parent" android:layout_height="fill_parent"
	/>
</LinearLayout>
Listagem 2. ExemploProgressDialog.java
package com.pdm.aula07bex1;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.widget.ImageView;
public class ExemploProgressDialog extends Activity {
	private static final String URL = "http://chart.apis.google.com/chart?chs=150x150&cht=qr&chl=www.livroandroid.com.br&choe=UTF-8";
	private ProgressDialog dialog;
	private Handler handler = new Handler();
	@Override
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		setContentView(R.layout.exemplo_progressdialog);
		//Abre a janela com a barra de progresso 
		dialog = ProgressDialog.show(this,"Exemplo", "Buscando imagem, por aguarde...", false,true);
//		ProgressDialog dialog = new ProgressDialog(this);
//		dialog.setTitle("Exemplo");
//		dialog.setMessage("Buscando imagem, por aguarde...");
//		dialog.setIndeterminate(true);
//		dialog.setProgress(int v); // se indeterminate = true - v entre 0 e 10000
//		dialog.setCancelable(true);
//		dialog.show();
		downloadImagem(URL);
	}
	//Faz o download da imagem em uma nova Thread
	private void downloadImagem(final String urlImg) {
		new Thread() {
			@Override
			public void run() {
				try {
					//Faz o download da imagem
					URL url = new URL(urlImg);
					InputStream is = url.openStream();
					final Bitmap imagem = BitmapFactory.decodeStream(is);
					is.close();
					//Atualiza a tela
					atualizaTela(imagem);
				} catch (MalformedURLException e) {
					return;
				} catch (IOException e) {
					//Uma aplicação real deveria tratar este erro
					Log.e("Erro ao fazer o download", e.getMessage(),e);
				}
			}
		}.start();
	}
	//Utiliza um Handler para atualizar a tela
	private void atualizaTela(final Bitmap imagem) {
		handler.post(new Runnable(){
			public void run() {
				//Fecha a janela de progresso
				dialog.dismiss();
				ImageView imgView = (ImageView) findViewById(R.id.img);
				imgView.setImageBitmap(imagem);
			}});
	}
}
Listagem 3. Aula07BActivity.java
package com.pdm.aula07bex1;
import com.pdm.aula07bex1.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Aula7BActivity extends Activity implements OnClickListener{
 /** Called when the activity is first created. */
	Button b1,b2,b3,b4,b5,b6,b7;
	
	@Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 b1 = (Button) this.findViewById(R.id.buttonImageImageButton);
 b1.setOnClickListener(this);
 b2 = (Button) this.findViewById(R.id.buttonAlertDialog);
 b2.setOnClickListener(this);
 b3 = (Button) this.findViewById(R.id.buttonToast);
 b3.setOnClickListener(this); 
 b4 = (Button) this.findViewById(R.id.buttonListView);
 b4.setOnClickListener(this); 
 b5 = (Button) this.findViewById(R.id.buttonAutoComplete);
 b5.setOnClickListener(this); 
 b6 = (Button) this.findViewById(R.id.buttonSpinner);
 b6.setOnClickListener(this); 
 b7 = (Button) this.findViewById(R.id.buttonProgressDialog);
 b7.setOnClickListener(this); 
 }
	
	public void onClick(View v){
		
		if (v.getId() == b7.getId()){
			startActivity(new Intent(this, ExemploProgressDialog.class));
		}
	}
}
	
Listagem 4. AndroidManifest.xml
	
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.pdm.veiculo"
 android:versionCode="1"
 android:versionName="1.0">
 <uses-sdk android:minSdkVersion="8" />
 <application
 android:icon="@drawable/ic_launcher"
 android:label="@string/app_name" >
 <activity
 android:name=".Aula7BActivity"
 android:label="@string/app_name" >
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>
 <activity android:name=".ExemploAutoCompleteTextView"></activity>
 <activity android:name=".ExemploImageImageButton"></activity>
 <activity android:name=".ExemploSpinner"></activity>
 <activity android:name=".ExemploAlertDialog"></activity>
 <activity android:name=".ExemploToast"></activity>
 <activity android:name=".ExemploListView"></activity>
 <activity android:name=".ExemploProgressDialog"></activity>
 </application>
</manifest>
	
Página 2 de 4

Outros materiais