A voir également:
- Activité en arrière plan
- Youtube en arrière plan - Guide
- Arrière plan - Guide
- Arriere plan pc - Guide
- Activité instagram - Guide
- Arrière-plan messenger vidéo - Guide
3 réponses
Bonjour,
Les
Les
AsyncTasks, c'est un peu dépassé..Regardes du côté des threads car, effectivement, il faut éviter de faire de gros traitements sur le thread principal (UI thread).
Lasyvegasy
Bonjour, j'essayé avec les threads mais toujours le même problème.. L'application s'arrête et se ferme quand je lance l'application.
J'ai modifié le code du coup j'ai plus de message d'erreur cependant ma détection de texte n'est pas efficace..
Il me retourne une grille rempli de zéro..
Il me retourne une grille rempli de zéro..
btnProcess.setOnClickListener(new View.OnClickListener() { @Override public void onClick(final View v) { new Thread(new Runnable() { public void run() { final StringBuilder stringBuilder = new StringBuilder(); TextRecognizer textRecognizer=new TextRecognizer.Builder(getApplicationContext()).build(); if(!textRecognizer.isOperational()){ Log.e("Error","Detector not available"); } else { int largeur = (bitmap.getWidth()) / 9; int hauteur = (bitmap.getHeight()) / 9; Bitmap cellule = null; for (int y = 0; y< 9; y++) { for (int x = 0; x < 9; x++) { if (y == 0) { cellule = Bitmap.createBitmap(bitmap,x*largeur,0,largeur,hauteur); } if (0 < y ) { cellule = Bitmap.createBitmap(bitmap,x*largeur,y*hauteur,largeur,hauteur); } Frame frame = new Frame.Builder().setBitmap(cellule).build(); cellule.recycle(); SparseArray<TextBlock> items = textRecognizer.detect(frame); if (items.size()==0){ stringBuilder.append("0" + " "); } else{ TextBlock item=items.valueAt(0); stringBuilder.append(item.getValue() + " "); } } stringBuilder.append("\n"); } } runOnUiThread(new Runnable() { public void run() { txtResult.setText(stringBuilder.toString()); } }); } }).start(); }; });