FAQ AndroidConsultez toutes les FAQ
Nombre d'auteurs : 5, nombre de questions : 55, dernière mise à jour : 16 avril 2016 Ajouter une question
Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums de http://android.developpez.com et de l'expérience personnelle des auteurs.
Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci .
Sur ce, nous vous souhaitons une bonne lecture.
- Comment afficher une boîte de progression pendant un traitement long ?
- Comment masquer le clavier depuis le code ?
- Comment afficher des images dans un composant ?
- Comment réaliser rapidement les icônes pour votre application ?
- Comment enlever la barre de titre de vos applications Android ?
- Comment changer la valeur d'un Toast en cours d'affichage ?
- Comment forcer une Activity à rester en mode portrait ?
- Comment changer le design de mon bouton lors d'un clic ?
- Mon composant peut changer de taille, comment adapter le décor de ce dernier ?
- Comment créer un écran transparent ?
Il faut afficher la boîte de dialogue, puis lancer votre traitement potentiellement long.
À la fin de votre opération, via un Handler, vous désactivez la boîte de dialogue.
Voici un exemple :
Code java : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 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(); } }; } |
Code java : | Sélectionner tout |
1 2 | InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); |
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 ».
Code xml : | Sélectionner tout |
1 2 3 4 5 6 | <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@drawable/icon" android:text="Exemple image à gauche" android:minWidth="180dp" /> |
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.c...ist/index.html
Soit vous le faites depuis votre manifest.xml :
Code xml : | Sélectionner tout |
<activity android:theme="@android:style/Theme.NoTitleBar" ... />
Code java : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | /** 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); //... } |
Il est également possible de masquer la barre pour toute l'application via le fichier manifest :
Code xml : | Sélectionner tout |
<application android:theme="@android:style/Theme.NoTitleBar" ... />
Il faut mémoriser l'instance du Toast affiché, puis changer son texte :
Code java : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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"); } |
Il suffit de rajouter des paramètres pour décrire votre activité dans le fichier manifest.xml :
Code xml : | Sélectionner tout |
android:screenOrientation="portrait" android:configChanges="orientation"
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 :
Code xml : | Sélectionner tout |
1 2 3 4 5 6 | <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> |
Pour affecter un Selector à votre composant, cela se passe dans votre layout XML :
Code xml : | Sélectionner tout |
android:background="@drawable/selector_bouton"
Plus de détails par ici : http://developer.android.com/guide/t...html#StateList
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.
À 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/t...html#NinePatch
La méthode présentée ici n’est valide qu’à partir de l’API 11 (HONEYCOMB). Brièvement les modifications s’effectuent dans le fichier manifest.xml. Il vous suffit de choisir un sous thème de Theme.Holo.Wallpaper comme thème de votre application. Dans le cas où vous voulez rendre transparente une Activity donnée, le principe ne change pas.
Fichier manifest.xml :
Code xml : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.yabolank.apptransparent" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="AppTransparent" android:theme="@android:style/Theme.Holo.Wallpaper" > <activity android:name=".EcranPrincipal" android:label="Accueil" > <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest> |
Fichier mon_layout.xml :
Code xml : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#886f18c1" tools:context=".EcranPrincipal"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="Salut ! Suis un Button" /> </RelativeLayout> |
Fichier EcranPrincipal.java :
Code java : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | package com.example.yabolank.apptransparent; import android.os.Bundle; import android.app.Activity; public class EcranPrincipal extends Activity { @Override protected void onCreateBundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ecran_principal); } } |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez 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'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.