25
2010
[Tutoriel Android] Partie 8 – Chargement des images et données
Récupérer un flux de données ou une image
Bonjour à tous, aujourd’hui nous allons voir comment récupérer des données provenant d’une page ou d’un flux de données à distance, ou encore une image et l’afficher.
Commençons par créer un tout nouveau projet, contenant une activité et un layout principal.
Modifions notre layout “main.xml” de cette façon :
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/ivImage" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:scrollbars="vertical"> <TextView android:id="@+id/tvContent" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </ScrollView> </LinearLayout>
On retrouvera une ImageView pour afficher notre image, ansi qu’un TextView qui contiendra la page que nous avons chargée, dans une ScrollView permettant de faire défiler celui-ci.
Nous allons utiliser nos premiers flux et les classes de connexions HTTP pour aller les chercher et les stocker.
Tout d’abord, créons une instance de notre ImageView et TextView pour les utiliser au sein de notre code.
public class MonActivite extends Activity {
ImageView image;
TextView page;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
image = (ImageView)findViewById(R.id.ivImage);
page = (TextView)findViewById(R.id.tvContent);
}
}
Nous allons créer une méthode downloadImage(), qui sera chargée de télécharger l’image distante et l’afficher dans notre ImageView.
Nous déclarerons un type Bitmap qui contiendra les informations de l’image. Puis par le biais de la classe URL, nous allons ouvrir une connexion vers celle-ci. Et enfin, avec la classe HttpURLConnection, nous allons récupérer le flux et pour finir la classe BitmapFactory servira à décoder notre flux.
private void downloadImage() {
Bitmap bitmap = null;
try {
URL urlImage = new URL("http://www.google.fr/intl/en_com/images/srpr/logo1w.png");
HttpURLConnection connection = (HttpURLConnection) urlImage.openConnection();
InputStream inputStream = connection.getInputStream();
bitmap = BitmapFactory.decodeStream(inputStream);
image.setImageBitmap(bitmap);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Nous allons utiliser la même technique pour lire une page web à la différence que nous n’allons pas la stocker dans une image, mais stocker les données dans un BufferReader, stocker chaque ligne de données dans un StringBuffer et pour finir l’afficher dans le TextView.
private void downloadPage() {
try {
URL urlPage = new URL("http://www.google.fr");
HttpURLConnection connection = (HttpURLConnection) urlPage.openConnection();
InputStream inputStream = connection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuffer stringBuffer = new StringBuffer();
String ligne;
while((ligne = bufferedReader.readLine()) != null) {
stringBuffer.append(ligne);
// Android 2.3 et supérieur
if(!bufferedReader.ready()) {
break;
}
}
page.setText(stringBuffer.toString());
connection.disconnect();
bufferedReader.close();
inputStream.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
N’oubliez pas de fermer la connection ainsi que le buffer et l’inputstream, ce qui libéra de la mémoire.
Lancez le programme et voyez par vous même.
Et voilà, le tutoriel est terminé maintenant vous savez charger une image à distance et les données d’une page.
N’oubliez pas d’ajouter la permission : android.permission.INTERNET
A plus tard pour le prochain tutoriel !
Voici les sources complètes : FormationImage
Articles relatifs
-
http://SiteWeb Chris
-
http://SiteWeb Chris
-
http://SiteWeb mari
-
http://SiteWeb Enjolras
-
http://SiteWeb NothingPersonal
-
http://SiteWeb NothingPersonal
-
http://SiteWeb NoBody
-
http://SiteWeb Dildil
-
http://SiteWeb cleg
-
http://SiteWeb Pymouss
-
http://SiteWeb Nico
-
http://SiteWeb Khaireddine120
-
http://SiteWeb Khaireddine120
-
http://SiteWeb Khaireddine120
-
http://SiteWeb Khaireddine120
-
http://SiteWeb Greg
-
http://SiteWeb Justine
-
http://SiteWeb Droide
-
http://SiteWeb Justine
-
http://SiteWeb Justine
-
http://SiteWeb Amath
-
http://SiteWeb Amath
-
http://SiteWeb Amath
-
http://SiteWeb Amath
-
http://SiteWeb Amath
-
http://SiteWeb Amath
-
http://SiteWeb Amath
-
http://SiteWeb Amath
-
http://SiteWeb ZouVic
-
http://SiteWeb Jedix
-
http://SiteWeb Jman
-
Gp2mv3
Survie
Catégories
- Andengine (5)
- Android (20)
- Application (1)
- Articles (1)
- Non classé (2)
- Programmation (30)
Nuage
Commentaires récents
- Paumé dans [Tutoriel Honeycomb] Partie 1 – Les actions bars
- Acesyde dans [Tutoriel android] Partie 3 – Une petite intention ?
- paul dans [Tutoriel Honeycomb] Partie 1 – Les actions bars
- Sne dans [Tutoriel android] Partie 3 – Une petite intention ?
- Vivien-57 dans [Tutoriel Android] Partie 13 – L’appareil photo
Archives
- janvier 2012 (2)
- novembre 2011 (1)
- octobre 2011 (3)
- juillet 2011 (3)
- juin 2011 (1)
- décembre 2010 (4)
- octobre 2010 (3)
- septembre 2010 (5)
- juillet 2010 (8)
- avril 2010 (6)

Un article de





