Ich habe Android-Anwendung mit Methode, die Bild als Observable zurückgeben. Ich brauche dieses Bild, um es in button.setDrawable (Drawable) zu verwenden. Also brauche ich einen einfachen Drawable-Typ. Wie man Bild von dieser Rückkehranweisung so erhält?Observable <Drawable> zu einfach Drawable
Antwort
Also brauche ich einfache Drawable Typ. Wie man Bild von dieser Rückkehranweisung erhält?
müssen Sie die Observable
abonnieren. Der Subscribe#onNext
erhält den Drawable
als Parameter. Beachten Sie, dass Sie setButton
vom Ui-Thread aufrufen müssen. Denken Sie also daran, den rechten Thread (den UI-Thread) zu beobachten (observeOn
).
bearbeiten
drawableObservable
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Drawable>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Drawable drawable) {
}
});
oder mit Lambda
drawableObservable
.observeOn(AndroidSchedulers.mainThread())
.subscribe(button::setBackground, Throwable::printStackTrace);
Ihre beobachtbare Unter der Annahme Namen obs
:
obs.toBlocking().first()
Dies wird blockiert, bis die Auslosungs durch die beobachtbaren emittiert wird.
Alternativ subscribe()
verwenden, um das Drawable zu erhalten, sobald es vom Observable ausgegeben wird, ohne zu blockieren.
Wenn Sie so lange blocken möchten, bis das Observable fertig ist, bevor Sie setDrawable()
aufrufen, verwenden Sie toBlocking
. Wenn Sie möchten, dass es immer dann auftritt, wenn das Observable (als Callback) fertig ist, subscribe
Es ist schlechte Form Observable in Sperrobjekte zu verwandeln. –
Das stimmt nicht, es kommt auf den Anwendungsfall an. Es gibt viele Fälle, in denen Sie auf ein Ergebnis warten und es dann zurückgeben müssen. – Malt
- 1. Flatten Observable <Observable <Object[]>>
- 2. RxJava2: Alternative zu Observable <Void>
- 3. Observable Rückgabetyp muss als Observable <Foo> oder Observable <? erweitert Foo>
- 4. Probleme während Arraylist Einstellung <Drawable> mit ArrayAdapter <Drawable> in android
- 5. Drawable vs. Drawable-LDpi/Drawable-Mdpi
- 6. Typ 'Observable <{}>' ist nicht dem Typ 'Observable <boolean> | zuweisbar boolean '
- 7. Typ Observable <Object> kann nicht in Typ Observable <CategoriesData>
- 8. Wie man eine Observable <ResultSet> zu Karte
- 9. Unendlich Observable zu HashMap als Observable
- 10. Kombinieren zwei Observable <Void> s
- 11. Drawable Resource
- 12. Einfach, einfach zu LRU-Cache in Java zu verwenden
- 13. Angular 2 Observable Observable []
- 14. Hiding .children ist einfach - was ist <dd>, die zu einem <dt>
- 15. Anzeigen Observable <any[ ]> Rückgabetyp in HTML
- 16. Einfach zu bedienen Paginierung
- 17. Drawable in Aussicht zerquetscht zu werden
- 18. Android - Drawable wiederholen Form zu erstellen Muster
- 19. Change button android: Hintergrund zu verschiedenen Drawable
- 20. Darf nicht zu Drawable LayerDrawable in Android
- 21. In Androide, was sollte die Bildgrößen in den Ordnern Drawable-LDpi, Drawable-MDPI, Drawable-HDP, Drawable-Xhdpi
- 22. Hinzufügen von Daten zu Observable
- 23. Sammeln RxJS Observable zu Array
- 24. LINQ Abfrage zu Observable-Sammlung
- 25. Swift Bind AnyObserver zu Observable
- 26. Drawable Ressource von benutzerdefinierten Attribut
- 27. Async Observable innerhalb Async Observable
- 28. Observable erstellen <T> Klasse: overloading = operator?
- 29. Observable von <button> Ereignis in Angular2 klicken
- 30. Konvertieren eines JSON-Objekt-Arrays in Observable <string[]>
könnten Sie bitte Beispiel Code-Snippet teilen? –
@ RafałPiekara, fertig. Schau mal – Blackbelt
danke, und noch eine Frage. Wenn ich es in "subscribe" implementieren (drawable -> radioButton.setCompoundDrawablesWithIntrinsicBounds (null, null, zeichnungsfähig, null)); 'image ist nur sichtbar, wenn Button aktiviert ist. Ich möchte, dass dieses Bild ständig angezeigt wird. –