0
我做了這個可觀測到壓縮位圖:如何在Observable完成時返回值?
public static Uri compressBitmapInBackground(Bitmap original, Context context)
{
Uri value;
Observable.create((ObservableOnSubscribe<Uri>) e ->
{
ByteArrayOutputStream out = new ByteArrayOutputStream();
original.compress(Bitmap.CompressFormat.JPEG, 100, out);
Bitmap decoded = BitmapFactory.decodeStream(new ByteArrayInputStream(out.toByteArray()));
String path = MediaStore.Images.Media.insertImage(context.getContentResolver(),decoded, "Title", null);
Log.d("pathCompress",path);
Uri uriPath = Uri.parse(path);
e.onNext(uriPath);
e.onComplete();
}).subscribeOn(Schedulers.computation())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(x-> System.out.print(x));
//how to return x when observable is complete?
}
我的問題是,我想要的可觀測完畢時,返回的結果:有沒有辦法做到這一點?因爲我可以在onNext()函數中調用演示者,但我更願意避免它。
謝謝
有趣......我已經讓最後一段代碼只用於製作可重用代碼,但我只能重用函數並在每個需要的類中實現Observable。 – ste9206
確切地說 - 因爲在每種情況下都存在不同的需求(要壓縮多少位圖以及更新顯示的頻率,在線/離線/後臺處理等),通常最好是製作自包含的流程,然後將它們綁定一起在您需要使用它們的每個位置。 –
非常感謝你 – ste9206