2011-11-17 3 views
0

Je souhaite implémenter un sélecteur de fichier Android pour OCR.Android File Chooser Retourne le chemin vers la classe principale

J'ai le code source de ce site: here

Ce que je veux est de créer une activité principale en utilisant l'intention d'appeler le FileChooser

public class MainFileChooser extends Activity { 
    Button btnBrowse =null; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.utama); 

     btnBrowse = (Button)findViewById(R.id.btnBrowse); 
     btnBrowse.setOnClickListener(new OnClickListener(){ 

      public void onClick(View arg0) { 
       Intent intent = new Intent(); 
       intent.setClass(MainFileChooser.this, FileChooser.class); 
       startActivity(intent); 


      } 

     }); 
    } 

} 

Alors que le bouton est cliqué, il sera lié à FileChooser puis, pendant qu'un clic est effectué sur une mosaïque, l'activité est renvoyée à MainFileChooser et renvoie également le chemin du fichier.

Le chemin de fichier sera traité pour l'OCR, comme la conversion en échelle de gris, l'extraction de caractéristiques, etc.

La question est comment puis-je retourner le chemin de l'image à l'activité MainFileChooser et pour le chemin donné, je peux créer une image bitmap (image tamponnée)?

+0

Envisagez d'utiliser celui-ci: http://code.google.com/p/android-filechooser/ –

Répondre

1

Comme le code source FileChooser suggéré, vous pouvez modifier onFileClick pour renvoyer le chemin d'image:

private void onFileClick(Option o) { 
    String path = o.getName(); 
    Intent data = new Intent(); 
    data.putExtra("path", path); 
    setResult(Activity.RESULT_OK, data); 
    finish(); 
} 

Puis, en MainFileChooser, au lieu de startActivity, utilisez startActivityForResult:

setActivityForResult(intent, 1234); 

Vous allez aussi besoin d'ajouter onActivityResult à MainFileChooser pour obtenir le nom de fichier:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == Activity.RESULT_OK && requestCode == 1234) { 
    String path = data.getStringExtra("path"); 
    Toast.makeText(this, "Path: " + path, Toast.LENGTH_SHORT).show(); 
    } 
} 
Questions connexes