Client Android

De $1

Version de 14:12, 7 Mai 2024

cette version.

Revenir à liste des archives.

Voir la version actuelle

Enoncé

Dans cette partie du TP, nous allons developper un client Android pour consommer notre service web.  L'objectif principal est de vous initier au developpement d'application Android en cosommant le service web developpé en TP 1. 

L'application que nous allons developper aura les interfaces suivantes: 

  1. Une interface pour afficher la liste des categories sous forme de liste (ListView) 
  2. Une interface pour afficher les livres d'une catégorie sous forme de grid (GridView) 
  3. Une interface pour ajouter une catégorie
  4. Une interface pour ajouter un livre dans une catégorie 

Pré Requis (ref ici)

  1. Android SDK (de préférence v3+)
  2. Eclipse 
  3. Android Développement Tools 
  4. Java JDK 1.6+
Création de l'application Android

Dans eclipse faites File --> New --> Other --> Android --> Android Application Project  

 create_projetc-1.png

 Appuyez sur Next! Dans l'écran qui suit, précisez les caractéristiques de votre projet. 

create_projetc-2.png

Appuyez sur Next! L'écran qui suit vous permet de configurer votre projet. 

create_projetc-3.png

Appuyez sur Next 

create_projetc-4.png

 Appuyez sur Next! 

create_projetc-5.png

Next

create_projetc-6.png

Votre interface doit ressembler à celle-ci (ref cours)

create_projetc-7.png

 Voyons si tout est ok avant d'aller plus loin! Faites bouton doigt sur votre projet --> Run as --> Android Application

 application_screen_1.png

Créez un menu pour votre application 

Pour cela vous devez utiliser un gridview qui affichera les options de l'application. 

Modifiez le layout associé à l'activité afin d'y ajouter un Gridview. 

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:columnWidth="90dp"
    android:numColumns="auto_fit"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:stretchMode="columnWidth"
    android:gravity="center"
/>

Nous voulons que chaque colonne de la gridview soit composée d'une image et un texte descriptif en dessous de l'image.  Pour cela, nous allons créer un layout correspondant à cet affichage. 

Faites bouton doigt sur le dossier layout --> New --> Other --> Android Layout File --> Next (layout_menu_model) --> Finish

Remplacez le contenu du fichier créé 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"     
    android:orientation ="vertical"
    android:padding="5dp" >
 
    <ImageView
        android:id="@+id/grid_item_image"
        android:layout_width="50px"
        android:layout_height="50px"
        android:layout_marginRight="10px"
        android:src="@drawable/android_logo" >
    </ImageView>
 
    <TextView
        android:id="@+id/grid_item_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+id/label"
        android:layout_marginTop="5px"
        android:textSize="15px" >
    </TextView>
 
</LinearLayout>

 Créez un adaptateur pour le gridview (ref cours) 

public class ImageAdapter extends BaseAdapter {
    private Context mContext;
    private  String[] menuValues ;
    private Integer[] mThumbIds;
    public ImageAdapter(Context c) {
        mContext = c;
        menuValues =mContext.getResources().getStringArray(R.array.menu);
        mThumbIds = new Integer[]{
                R.drawable.ic_launcher, R.drawable.ic_launcher,
        };
    }
    public int getCount() {
        return mThumbIds.length;
    }
    public Object getItem(int position) {
        return null;
    }
    public long getItemId(int position) {
        return 0;
    }
    // create a new ImageView for each item referenced by the Adapter
    public View getView(int position, View convertView, ViewGroup parent) {
    	LayoutInflater inflater = (LayoutInflater) mContext
    			.getSystemService(Context.LAYOUT_INFLATER_SERVICE);   
    		View gridView;
    		if (convertView == null) {
    			gridView = new View(mContext);
    			// get layout from mobile.xml
    			gridView = inflater.inflate(R.layout.layout_menu_model, null);
    			// set value into textview
    			TextView textView = (TextView) gridView
    					.findViewById(R.id.grid_item_label);
    			textView.setText(menuValues[position]);
    			// set image based on selected text
    			ImageView imageView = (ImageView) gridView
    					.findViewById(R.id.grid_item_image);
    				imageView.setImageResource(mThumbIds[position]);
    		} else {
    			gridView = (View) convertView;
    		}
    		return gridView;
    } 
}

sddd