gpt4 book ai didi

android - 如果拍摄图像时方向发生变化,RxImagePicker 不会调用完成

转载 作者:行者123 更新时间:2023-11-29 01:19:02 25 4
gpt4 key购买 nike

我正在使用 RxImagePicker 在我的强制肖像应用程序中拍照:

RxImagePicker.with(getActivity()).requestImage(Sources.CAMERA).subscribe(new Action1<Uri>() {
@Override
public void call(Uri uri) {
RxImageConverters.uriToBitmap(getActivity(), uri).subscribe(new Action1<Bitmap>() {
@Override
public void call(final Bitmap bitmap) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
//i take over here if we ever get here...
}
});
}
});
}
});

如果我在不旋转设备的情况下拍照,它就可以工作(虽然图像旋转了,但这是另一个问题)。但是,如果我横向拍照,则永远不会调用 uriToBitmap。这不是我的 Activity 或 Fragment 被重启,因为所有的状态都保存在我的应用程序中。

我做错了什么?

最佳答案

根据消息来源,RxImagePicker 使用 PublishSubject 将 uri 通知传达给客户端。 Picker 启动隐藏 Activity ,并且该 Activity 在它的 onDestroy() 回调中发出 onCompleted()。该回调在 Activity 重新创建时被调用以响应方向变化。因为 SubjectObservable,所以它服从 Observable contract ,它声明 onCompleted() 之后不应再有通知,因此 onCompleted() 之后的 onNext() 通知将被忽略。还有一个问题:当图像被成功拾取时,onCompleted() 被调用了两次。似乎没有解决方法,可能的解决方案:

  • 自己 fork 库并修复上述问题

  • 在 github 上提交问题,以便作者可以解决它们

  • 推出您自己的解决方案(最好的 IMO)

关于android - 如果拍摄图像时方向发生变化,RxImagePicker 不会调用完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38000275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com