2016-11-17 1 views
1

이미지를 다운로드하고이를 내 RelativeLayout 배경으로로드하는 데 필자는이 코드 줄 (피카소 라이브러리를 사용하고 있습니다)을 사용합니다.안드로이드 스튜디오 앱을 처음 실행 한 후 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); 

처음으로 에뮬레이터로 앱을 실행할 때 모든 것이 정상적으로 작동합니다. 문제는 다음에 앱을 실행해도 결코 작동하지 않으며 배경이 변경되지 않는다는 것입니다. 코드에서 아무 것도 변경하지 않는다는 것을 확신 할 수 있습니다. 앱을 다시 실행하십시오. 그러나 코드의 한 줄만 변경하면 예를 들어 몇 가지 코멘트를 만들 수 있습니다. 주석은 기능이없는 경우에도 다시 작동합니다. 이전처럼 코드를 변경하지 않고 앱을 다시 실행하면 백그라운드가 변경되지 않습니다. 어떤 버그가 있습니까? 아니면 내가 귀신이 들려 왔습니까?

편집 : 나는 응용 프로그램을 실행하는 처음의 logchat이 onBitmapLoaded() 실행하고 모든 것이 잘 작동 보여줍니다 발견 일부 logchat 출력 후. 다른 시간에 내가 app logchat를 실행하면 onPrepareLoad()가 실행되고이 문제 때문에 내 자리 표시 자에 배경이 설정됩니다. W/Settings : airplane_mode_on 설정이 android.provider.Settings.System에서 android.provider.Settings.Global로 이동되었습니다. 읽기 전용 값을 반환합니다.

답변

1

나는 결국 대답을 발견했다. 나는 코딩을 통해 이미 대상 객체가 쓰레기로 간주되지 않을 것이라고 생각했습니다. 불행히도 나는 틀렸고 안정되고 올바른 코드를 추가해야했습니다. 나와 같은 문제가있는 다른 사람들을 위해 여기에 추가합니다.

relative_layout.setTag(target); 
0

코드가 제대로 표시되지 않는 문제를 일으키는 것으로 알려져있는 인스턴트 실행을 사용 중지했는지 확인하십시오.

여전히 문제가 해결되지 않으면 File -> Invalidate Caches/Restart...으로 이동 한 다음 Android Studio를 다시 시작하십시오. 안드로이드 쿼리 : 0.24

+0

아니요, 나는 둘 다했습니다. 첫 번째 작업은 전혀 작동하지 않습니다. 두 번째 앱은 앱을 처음 실행하는 경우에만 작동합니다. –

0

사용 AQuery이 최고의 하나는 런타임에 URL에서/

응용 프로그램 수준 Gradle을 입력 ** 컴파일 'com.googlecode.android 쿼리를 이미지 다운로드를 가져올 수 있습니다. ** 3 '

는 사용 방법 :

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

    AQuery aQuery = new AQuery(img); 

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

을, 파일 캐시 및 메모리 캐시의 경우 이미지 뷰 사용의 의미 두 부울 값을 두 번째 인수에서 ame URL 두 번째로 다시 다운로드하지 않고 다시 캐시에서 동일한 이미지를 사용합니다.

  1. 빠른
  2. 간단한
  3. 사용하기 쉬운
  4. 이이 이미지를 다운로드하는 시간이 걸립니다 때까지 진행 표시 줄을 사용할 수없는 서버 응답에서 메모리 캐시 및 파일 캐시, 기본 이미지와 같은 많은 기능, ListView 및 RecyclerView에서의 빠른 반사.
+0

글쎄, 나는 imageview 용 사진을 다운로드하고 싶지 않다.피카소는 나를 위해 피카소와 함께 완벽하게 작동합니다. 나는 그림을 다운로드하여 RelativeLayout의 배경으로 설정하려고합니다. 이 경우 위의 코드 행에서와 같이 사진을 다운로드하여 bitmapDrawable에 넣어야합니다. 이것이 피카소가 필요한 이유입니다. –

관련 문제