Accueil
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
logo



Comment afficher une boîte de progression pendant un traitement long ?
auteur : Le Trocquer Mickaël
Il faut afficher la boîte de dialogue, puis lancer votre traitement potentiellement long.
A la fin de votre opération, via un Handler, vous désactivez la boîte de dialogue.
Voici un exemple :
Gérer une boîte de progression

public class MaClass extends Activity implements Runnable {
 
	private ProgressDialog pd;
 
	//...
 
 
	public void launchWait() {
		pd = ProgressDialog.show(this, "Patientez...", "En cours d'action longue", true,false);
 
		Thread thread = new Thread(this);
		thread.start();
	}
 
	public void run() {
		
                //Ici mettre le code qui effectue une opération "longue" 
                //...
                //...
 
                //Une fois l'opération finie, prévenir la boîte de dialogue 
                //qu'elle peut se fermer :
		handler.sendEmptyMessage(0);
	}
 
	private Handler handler = new Handler() {
 
		@Override
		public void handleMessage(Message msg) {
                        //Le handler a reçu une notification
                        //On ferme la boîte de dialogue
                        //Les bonnes pratiques voudraient qu'on teste le msg ...
 			pd.dismiss();
		}
	};
}

Comment masquer le clavier depuis le code ?
auteur : Le Trocquer Mickaël
Forcer le clavier à se cacher

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

Comment afficher des images dans un composant ?
auteur : Le Trocquer Mickaël
Il est possible d'insérer des images près d'un composant, sans déclarer un nouveau composant de type ImageView. Ceci peut se faire depuis la description xml via les attributs : "drawableLeft", "drawableRight", "drawableTop", "drawableBottom".
Afficher une image à gauche d'un bouton

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/icon"
        android:text="Exemple image à gauche"
        android:minWidth="180dp" />

Comment réaliser rapidement les icônes pour votre application ?
auteur : Le Trocquer Mickaël
Google a mis en place un outil pour vous simplifier la création d'icônes. En quelques clics, l'icône sera téléchargeable et contiendra les versions low/middle/high dmi.
http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html


Comment enlever la barre de titre de vos applications Android ?
auteur : Le Trocquer Mickaël
Soit vous le faites depuis votre manifest.xml :

<activity android:theme="@android:style/Theme.NoTitleBar" ... />
Soit depuis votre code :


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
        //Renseigner ce code avant l'appel à 'setContentView'
	this.requestWindowFeature(Window.FEATURE_NO_TITLE);
	setContentView(R.layout.main);
        //...
}
Ceci vous permet de masquer la barre sur chacune de vos activités.
Il est également possible de masquer la barre pour toute l'application via le fichier manifest :

<application android:theme="@android:style/Theme.NoTitleBar" ... />

Comment changer la valeur d'un Toast en cours d'affichage ?
auteur : Le Trocquer Mickaël
Il faut mémoriser l'instance du Toast affiché, puis changer son texte :

private Toast toast;
 
private void showToast(String message){
 
  if(toast!=null){
    toast.setText(message);
  }else{
    toast = Toast.makeText(this, message,Toast.LENGTH_SHORT);
  }
  toast.show();
}
 
public void maMethode() {
  //On affiche un premier Toast
  showToast("message1");
  //... 
  //On affiche ou modifie le Toast
  showToast("message2");
}
 

Comment forcer une Activity à rester en mode portrait ?
auteur : Le Trocquer Mickaël
Il suffit de rajouter des paramètres pour décrire votre activité dans le fichier manifest.xml :

android:screenOrientation="portrait" android:configChanges="orientation"

Comment changer le design de mon bouton lors d'un clic ?
auteur : Le Trocquer Mickaël
Le SDK d'Android propose un mécanisme de "Selector" pour simplifier la tâche des développeurs pour gérer les différents états d'un composant.
Ainsi, via un fichier XML, vous pouvez décrire le comportement (visuel) de votre composant et indiquer un graphisme à adopter lorsque votre composant passe à l'état "pressé" ou qu'il obtient le focus etc.
Exemple :
selector_bouton.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_focused="true" android:color="@color/testcolor1"/>
   <item android:state_pressed="true" android:state_enabled="false" android:color="@color/testcolor2" />
   <item android:state_enabled="false" android:color="@color/testcolor3" />
   <item android:color="@color/testcolor5"/>
 </selector>
Ainsi, via ce code, votre bouton changera de couleur en fonction de son état (enable/disable, pressed, focused, normal).
Pour affecter un Selector à votre composant, cela se passe dans votre layout XML :
monlayout.xml

android:background="@drawable/selector_bouton"
Ici dans l'exemple, c'est la propriété "background" qui est impactée.
Plus de détails par ici : http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList


Mon composant peut changer de taille, comment adapter le décor de ce dernier ?
auteur : Le Trocquer Mickaël
Le SDK d'Android propose un mécanisme de "9-patch" pour simplifier la tâche des développeurs pour gérer efficacement le graphisme des composants susceptibles de changer de taille.
A partir de votre dessin initial, vous spécifiez des zones extensibles. Ces zones s'adapteront automatiquement en fonction de la taille désirée.
Un outil existe pour convertir vos graphismes en 9-patch : Draw9patch.
Plus de détails par ici : http://developer.android.com/guide/topics/resources/drawable-resource.html#NinePatch



Consultez les autres F.A.Q's


Les sources présentés sur cette page sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2010  Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com