2016-11-17 9 views
1

画像をダウンロードして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

私は最終的に答えを見つけました。私はすでに行ったコーディングで、Targetオブジェクトはゴミとみなされないと考えました。残念ながら私は間違っていたので、このコード行を追加して安定したものにしなければなりませんでした。私と同じ問題を抱えている人のためにここに追加します:

relative_layout.setTag(target); 
0

コードが正しくリフレッシュされないという問題が発生することが知られているため、インスタント実行が無効になっていることを確認してください。

問題が解決しない場合は、File -> Invalidate Caches/Restart...にアクセスし、Androidスタジオを再起動してください。アンドロイドクエリ:0.24

+0

いいえ、私は両方をしました。最初のものはまったく動いていません。もう1つは、アプリを初めて実行するときにのみ有効です。 –

0

使用AQueryこのベスト1は、実行時にURLから/

アプリレベルのGradleエントリ **コンパイル「com.googlecode.android-クエリをダウンロード画像を取得します。 ** 3' の使い方

:あなたのイメージ図を使用の場合は、2番目の引数で

ImageView img= (ImageView) findViewById(R.id.image); 

    AQuery aQuery = new AQuery(img); 

    aQuery.id(img).image("http://i.imgur.com/D3IBDDS.jpg",true, true); 

2つのブール値は、ファイルのキャッシュとメモリキャッシュの略ame URL 2回目のダウンロードが何度も繰り返されず、キャッシュから同じイメージが使用されます。

  1. 高速
  2. シンプル
  3. を使用して簡単には画像をダウンロードするには時間がかかるまで、あなたは進捗バーを使用することができ、無サーバの応答のデフォルトの画像、メモリキャッシュとファイルキャッシュのような多くの機能があり、 ListViewとRecyclerViewのクイックリフレクション
+0

さて、私はイメージビューのための写真をダウンロードしたくありません。ピカソはピカソで完璧に動作します。私は写真をダウンロードし、それをRelativeLayoutのバックグラウンドとして設定したい。この場合、上のコード行で説明したように、ピクチャをダウンロードしてbitmapDrawableに配置する必要があります。これが私がピカソを必要とする理由です。 –

関連する問題