方向改变后不绘制我的drawable(使用loadermanager)

时间:2013-07-23 13:40:44

标签: android android-layout android-drawable android-loadermanager

我正在使用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);
}

0 个答案:

没有答案