我有用户插入用户名和密码的登录活动。用户登录后,客户收到的所有用户信息存储在领域数据库中。在mainActivity中读取这些信息,滑动图像用户显示在ImageView.User图像中是字节数组:我使用的是MVP设计模式:
private void loadProfileUserImage() {
RequestOptions requestOptions = new RequestOptions();
requestOptions.placeholder(R.drawable.shadow);
requestOptions.circleCropTransform();
requestOptions.transforms(new CenterCrop(), new RoundedCorners(300));
Glide.with(view.getContext())
.load(userInfo.getUserImage())
.apply(requestOptions)
.into(view.getProfilePic());
}
一切都很好,图像用户显示在imageView.IN mainActivity我有一个卡片视图。当用户点击我的卡时,所有用户信息都通过rx和intent发送给UserInfoActivity。我正在使用BehaviorSubject
发送用户信息:
view.getCard1().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
RxBus.getSubject().onNext(userInfo);
activity.startActivity(new Intent(activity,UserInfoActivity.class));
}
});
在UserInfoPresenter
我想向用户显示所有用户信息。我在UserInfo布局中创建了图像视图:
<ImageView
android:id="@+id/iv_user_profile"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:layout_marginTop="32dp"
android:scaleType="centerCrop" />
在getSubject的UserInfopresenter中,我获取了用户信息,最后我想通过glid显示用户图像。但没有任何事情发生,glid:userInfo
声明为字段的用户图像不显示。
userInfo = new User();
compositeDisposable.add(
MainPresenter.RxBus.getSubject()
.subscribeWith(new DisposableObserver<User>() {
@Override
public void onNext(User o) {
userInfo = o;
loadProfileUserImage();
}...
和loadProfile方法:
private void loadProfileUserImage() {
RequestOptions requestOptions = new RequestOptions();
requestOptions.placeholder(R.drawable.shadow);
requestOptions.circleCropTransform();
requestOptions.transforms(new CenterCrop(), new RoundedCorners(300));
Glide.with(view.getContext())
.load(userInfo.getUserImage())
.apply(requestOptions)
.into(view.getProfilePic());
}
我没有收到任何错误,甚至在imageView中也没有显示placeholder drawable
!就像glid不存在而且它不起作用。我把brakepoint用于debugin以确保在这部分中接收正确的User object
:
@Override
public void onNext(User o) {
userInfo = o;
loadProfileUserImage();
}
用户完全收到,我可以在调试模式下看到用户图像字节数组。
发生了什么,你的想法是什么?
*****************编辑** *******************
调试模式图像:
{{3}}
答案 0 :(得分:0)
我终于找到了,我的问题在哪里。
我正在使用dagger注入依赖项,并在我的注释构造函数中注入了UserInfoView
:
@Inject
public UserInfoView(Activity activity) {
super(activity);
this.activity = activity;
以这种方式看似右视图没有注入到演示者类中,因为我已经通过它的构造函数注入了演示者:
@Inject
public UserInfoPresenter(UserInfoView view, Activity activity) {
this.view = view;
this.activity = activity;
}
当我将UserInfoView放入我的模块时:
@Provides
@UserInfoScope
public UserInfoView view() {
return new UserInfoView(activity);
}
并运行app,显示用户图像配置文件,并且glid做正确的工作。