我正在使用loadermanager为我的应用程序。在方向更改我的应用程序可以重新加载TextView,但我的drawable的图像流不会第二次加载。在第一次加载时,图片显示,但在方向改变后,它保持在未改变的状态。 (在我的例子中,是一个白色方块)
@Override
public void onLoadFinished(Loader<Person> loader, Person p) {
tvProfileName.setText(p.getName());
Log.i("img stream", ""+p.getImageStream());
Bitmap b = BitmapFactory.decodeStream(p.getImageStream());
Drawable d = new BitmapDrawable(getResources(), b);
ivMenuPhoto.setImageDrawable(d);
}
即使在方向更改后,setText仍在工作,我的名字已加载。但setimagedrawable无效。 p.getImageStream不为null ...
在布局完成更改之前,我的绘图是否可以设置?我很困惑,因为我的TextView正在工作。
为我的解决方案编辑:
我在Person对象中添加了一个Drawable属性。所以装载机也可以容纳那部分。然后我创建了getter和setter。然后我添加了onResume以在方向更改后设置我的drawable
@Override
public void onLoadFinished(Loader<Person> loader, Person p) {
tvProfileName.setText(p.getName());
Drawable d = new BitmapDrawable(getResources(), p.getPersonphoto());
this.personPhoto = d;
ivMenuPhoto.setImageDrawable(d);
}
@Override
protected void onResume() {
super.onResume();
ivMenuPhoto.setImageDrawable(this.personPhoto);
}