2014-10-30 3 views
1

Picasa 평판 라이브러리를 사용하여 내 안드로이드 응용 프로그램에서 이미지를로드합니다. 이런 식으로 일을 할 때 잘 작동 :Android Imge Picasso Square 캐시 크기

Picasso.with(getApplicationContext()).load(Properties.IMAGE_URL + i).transform(transformation).centerCrop().fit().into(imgeButton); 

내 문제는 이미지의 로딩이 너무 느린이며 지금보다 내가 캐시가 더 큰 싶습니다 것입니다. 하나의 이미지로 작업 할 때 캐시가 제대로 작동한다는 것을 알았습니다. 처음에는 이미지가 캐시되지 않고 바로 그 이후에 동일한 코드가 호출 될 때마다 이미지는 네트워크가 아닌 캐시 된 데이터에서 가져옵니다. 이미지 수가 증가하면 캐시가 너무 작아지고 이미지가 교체 된 것 같습니다. 캐시 크기를 수정/확대 할 수 있습니까?

이 문제에 대한 도움을 주시면 감사하겠습니다. 피카소가 사용하는

감사

답변

2

당신은 당신의 자신의 LRUCache를 지정할 수 있습니다.

Picasso picasso = new Picasso.Builder(context).memoryCache(
      new LruCache(cacheSize)).build(); 

기본적으로 Picasso는 LRU에 대해 사용 가능한 힙의 1/7을 사용한다고 생각합니다. 그러나 장치 메모리 클래스를 사용하여 원하는 크기를 계산할 수 있습니다.

int memClass = ((ActivityManager) mApplicationContext 
      .getSystemService(Context.ACTIVITY_SERVICE)) 
      .getLargeMemoryClass(); 
int cacheSize = 1024 * 1024 * memClass/4; 

행운을 비네!

+0

답장을 보내 주셔서 감사합니다. 다음 사진을 캐싱하면 어떻게 표시됩니까? 갤러리에서 사진을 보여주고 있다고 가정 해 보겠습니다. 로딩 시간을 피하기 위해 다음 그림을 항상 캐싱 할 수 있습니까? – tzuvy

+0

hay @DejanRistic 저는 피카소를 사용하여 디스크에서 이미지를로드합니다. picasso.with (context) .load (file) .into (imageview); ...... 어떻게 이런 식으로 현금을 설정할 수 있습니까? 고맙습니다 사전에 – Error

+0

@ 피카소는 이미지 소스로 리소스를 사용하는 것을 지원합니다. 그래서 나는 똑같은 방식으로 작동한다고 가정합니다. 디버깅을 사용하여 이미지의 소스를 볼 수 있으며, 디버깅을 통해 이미지의 출처를 알 수 있습니다. Picasa 인스턴스에서 setIndicatorsEnabled (true)를 호출합니다. 그리고 그것은 소스를 나타내는 작은 색깔의 리본을 가질 것입니다. 나는 푸른 색이 원판이고 녹색이 기억이고 붉은 색이 네트워크라고 생각한다. – DejanRistic

관련 문제