dadou75 Posté(e) 14 mai 2011 Share Posté(e) 14 mai 2011 Bonjour, Je réalise actuellement un lecteur d'image mais lors de l'exécution un écran noir apparait, le LogCat m'indique "decoder->decode returned false" Mes codes : package andro.com; import android.app.Activity; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.os.Bundle; public class Lecteur extends Activity implements View.OnTouchListener{ String url; Media media=null; @Override protected void onCreate(Bundle savedInstanceState) { Log.i("dadou", "je suis dans le Lecteur.onCreatavan"); super.onCreate(savedInstanceState); Log.i("dadou", "je suis dans le Lecteur.onCreatapre"); Bundle extras = this.getIntent().getExtras(); if (extras != null) { // On récupere l'addresse du media url = (String) extras.get("address"); media=ContainerData.getMedia(url);//création du média à partir de l'adresse //to DO test sur le media pour mettre en place le layout(navigation dans le média) Log.i("dadou", "recuperation du media par le lecteur "+media.toString()); } } @Override protected void onStart() { Log.i("dadou", "recuperation du media par le lecteur.onStart "+media.toString()); media.actuReader().affichage(this, this);//la méthode actureader() retourne un String indiquant le chemin du fichier à lire ("/sdacard/image/01.jpg") Log.i("dadou","adreese de la premier vignette dans le lecteur"+ media.toString()); super.onStart(); } @Override public boolean onTouch(View arg0, MotionEvent arg1) { Log.i("dadou", "recuperation du media par le lecteur.onTouch "+media.toString()); media.suite().affichage(this, this); return false; } } la classe appelée pour l'affichage est : package andro.com; import java.io.FileInputStream; import java.io.IOException; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.util.Log; import android.widget.ImageView; public class Image implements TypeMedia{ String address; Context con; Activity acti; public Image(String address){ this.address=address; } public void affichage(Context cont,Activity acti) { Bitmap[] imv =new Bitmap[3]; try { imv[0] = BitmapFactory.decodeStream(new FileInputStream(address)); } catch (IOException e) { System.out.println("pb d'E/S "+"__"+address+"__"); e.printStackTrace(); } Log.i("dadou", "passage d'adresse réussie "+cont.toString()); ImageView im=new ImageView(cont); im.setImageBitmap(imv[0]); acti.setContentView(im); } public String getAddress(){return address;} } ps: le lecteur est lui même exécuter après avoir trouver le fichier xml contenant l'adresse de l'image et le parsage de celui-ci. code du lecteur de base package andro.com; 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; import android.widget.TextView; public class Main extends Activity { TextView tv; Button bt; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tv = (TextView)findViewById(R.id.textView1); bt=(Button)findViewById(R.id.button1); bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(getBaseContext(),FileDialog.class); intent.putExtra(FileDialog.START_PATH, "/sdcard"); int REQUEST_SAVE =0; startActivityForResult(intent, REQUEST_SAVE); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { // Récupération des parametres Bundle extras = data.getExtras(); if (extras != null) { // On récupere notre parametre String String myParam = (String) extras.get(FileDialog.RESULT_PATH); // data=intent.getStringExtra(FileDialog.RESULT_PATH,"oh non"); tv.setText("coucou c'est "+myParam); // media=ContainerData.getMedia(myParam);//création du média à partir de l'adresse: obsolete Intent lecture=new Intent(this, Lecteur.class); //ouverture de la class Lecture lecture.putExtra("address", myParam); //avec transmission de l'adresse du media pourai se faire avec contenu de la base de donnée startActivity(lecture); }else{ tv.setText("coucou c'est un pb de recup!!!..."); } } } Quelqu'un aurait il une idée de la provenance de cette erreur? Merci d'avance pour votre aide!!!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.