0

我正在为我的应用程序使用 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);
}
4

0 回答 0