Bir OpenCV için özel olan bir işlem parçacığından bir Android tost yapmam gerekiyor, bu yüzden burada önerildiği gibi runOnUiThread() kullanamazsınız: Android: Toast in a thread.başka bir iş parçacığı üzerinden tost nasıl yapılır (sans runOnUiThread)
Bu kodun çoğu CVCamera örnek uygulamasından alınmıştır. Oynarım menü düğmesini seçin Ama bu alışılmadık, SURFProcessor şöyle denir:
Ben telefonun kamera düğmesine bastığınızda (= true capturePress), bir görüntü alınır ve böylece bu İşlemci iplik çalıştırılır else if (item.getTitle().equals("SURF")) {
defaultcallbackstack.addFirst(new SURFProcessor());
toasts(DIALOG_TUTORIAL_SURF, "");
}
ve işlem tamamlandı. gösterildiği gibi ben tost yöntemi çağırmak istiyorum:
void toasts(int id, String msg) {
switch (id) {
case PROCESS_MESSAGE:
Toast.makeText(MMRapp.this, msg, Toast.LENGTH_LONG).show();
break;
.........
Sağ
şimdi bu kod bana bir hata veriyor:
İşteclass SURFProcessor implements NativeProcessor.PoolCallback {
@Override
public void process(int idx, image_pool pool, long timestamp,
NativeProcessor nativeProcessor) {
if(capturePress) {
String processMsg = processor.processFeatures(idx, pool, cvcamera.DETECT_SURF);
capturePress = false;
toasts(PROCESS_MESSAGE, processMsg);
}
}
}
ana sınıfında bulunan tost yöntem uzanan Hareketi "olamaz Looper.prepare() adı verilen iş parçacığı içinde işleyici oluştur. Tost yöntemini çağırmaya nasıl giderim? Veya tost yönteminin processMsg'de bir değişiklik için dinlenmesi mümkün mü? Mümkünse, processMsg göndererek veya bir sınıf değişkenini değiştirerek yapabilirim. Özünde, bu İşlemci iş parçacığından güncellenmiş bir Dize ihtiyacım var.
Çok teşekkür ederim ve istenirse daha fazla bilgi/kod sağlayacağım.
toastHandler.post(toastRunnable);
işleyicisi yürütür senin iplik kullanımından onu çağırmak için daha sonra
// these are members in the Activity class
Handler toastHandler = new Handler();
Runnable toastRunnable = new Runnable() {public void run() {Toast.makeText(Activity.this,...).show();}}
:
-Tom
teşekkür ederim o
Tetik tanımlayın! Bir çekicilik gibi çalışır ... Bunu yapmak için basit bir yol olması gerektiğini düşündüm. – wrapperapps