我正在为我的应用程序使用 loadermanager。在方向更改时,我的应用程序可以重新加载 TextView,但我的可绘制对象的图像流没有第二次加载。在第一次加载时,图片显示,但在方向改变后,它保持不变的状态。(在我的情况下,一个白色的正方形)
@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 不为空...
我的drawable是否可能在布局完成更改之前设置?我只是很困惑,因为我的 TextView 正在工作。
为我的解决方案编辑:
我在 Person 对象中添加了一个 Drawable 属性。所以装载机也可以拿着那部分。然后我创建了 getter 和 setter。然后我添加了 onResume 以在方向更改后设置我的可绘制对象
@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);
}