画像をダウンロードしてRelativeLayoutのバックグラウンドに読み込むために、これらのコード行(ピカソライブラリを使用しています)を使用します。Androidスタジオアプリを初めて実行したときにPicassoローダーが動作しない
Target target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
relative_layout.setBackground(new BitmapDrawable(getResources(), bitmap));
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
relative_layout.setBackgroundResource(R.drawable.blolo);
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
relative_layout.setBackgroundResource(R.drawable.blolo);
}
};
Picasso.with(this)
.load("http://i.imgur.com/D3IBDDS.jpg")
.into(target);
私のエミュレータで初めてアプリケーションを実行すると、すべて正常に動作します。問題は、次に動作するアプリを実行したときに、背景が変わらないということです。私はコード内で何も変更しないことを保証することができます。私はちょうど再びアプリケーションを実行します。しかし、コードの1行を変更すると、例えば私はいくつかのコメントを作成します:// blah blah、コメントに機能がないのに、再び機能します。以前と同じように、コードを変更せずにアプリを実行しても、バックグラウンドは変わらない。バグはありますか?
編集:私は、私はアプリを初めて実行するには、logchatはonBitmapLoaded()が実行され、すべてが正常に動作することを示していることを発見し、いくつかのlogchat出力後。私がアプリのログを実行すると、onPrepareLoad()が実行され、この問題のためにプレースホルダに背景が設定されます。W/Settings:airplane_mode_onの設定がandroid.provider.Settings.Systemからandroid.provider.Settings.Globalに移動しました。読み取り専用値を返します。
いいえ、私は両方をしました。最初のものはまったく動いていません。もう1つは、アプリを初めて実行するときにのみ有効です。 –