2

'유니버설 이미지 로더'를 사용하여 내 ListView 내부의 이미지를로드하려고합니다. 내 코드는 다음과 같습니다'유니버설 이미지 로더'가 ImageView의 매개 변수 (크기 및 위치)를 잃었습니다.

public View getView(int position, View convertView, ViewGroup parent) 
if (convertView == null) { 
     convertView = mInflater.inflate(R.layout.offers_list_adapter, null); 

     holder = new ViewHolder(); 
     holder.mIvImage = (ImageView) convertView 
       .findViewById(R.id.ivImage); 
     holder.mTxtName = (TextView) convertView.findViewById(R.id.txtName); 
     holder.mTxtCategoryName = (TextView) convertView 
       .findViewById(R.id.txtCategoryName); 
     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 

나는 하나의 규칙이 있습니다 내 목록에서이 항목이 특별 한 경우 정상보다 이미지 뷰가 더 큰이 내 이미지 뷰의 PARAMS (예 : 특별 항목을 변경해야 ,

을). 라이브러리에서 실행할 때

imageLoader.displayImage(holder.url, holder.mIvImage); 

하지만 : 내 PARAMS을 변경 한 후, 나는 평소와 같이 '유니버설 이미지 로더'라이브러리를 호출

if (holder.isSpecial) { 
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT, 50); 
      layoutParams.gravity = Gravity.CENTER_HORIZONTAL; 
      holder.mIvImage.setLayoutParams(layoutParams); 
} 

:

그래서 내 코드에서 나는 그렇게 ImageView 내 이미지를 넣으려면 내 UI 스레드 내 ImageView 센터 및 크기가 잘못되었습니다. 이 항목은 특별하므로 변경 한 내용이 적용되지 않습니다.

나는 내 자신의 ImageDownloader을 가지고 있고 새로운 PARAMS 제대로 (센터 및 새로운 크기)로에게 이미지 뷰로드를 사용하지만, 때 다른 많은 점에서 내 자신의 클래스는이 라이브러리로 너무 좋지 않다.

아무도 모르고 있습니다.

미리 감사드립니다.

건배!


내 '유니버설 이미지 로더'구성 :

DisplayImageOptions options = new DisplayImageOptions.Builder() 
       .cacheInMemory().cacheOnDisc() 
       .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) 
       .displayer(new RoundedBitmapDisplayer(0)).build(); 


     ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
       mContext) 
       .memoryCacheExtraOptions(480, 800) 
       .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75) 
       .threadPoolSize(3) 
       .threadPriority(Thread.NORM_PRIORITY - 1) 
       .denyCacheImageMultipleSizesInMemory() 
       .offOutOfMemoryHandling() 
       .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) 
       .discCache(new UnlimitedDiscCache(file)) 
       .discCacheFileNameGenerator(new HashCodeFileNameGenerator()) 
       .imageDownloader(
         new URLConnectionImageDownloader(5 * 1000, 20 * 1000)) 
       .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) 
       .enableLogging().defaultDisplayImageOptions(options).build(); 

     imageLoader.init(config); 
+0

왜'''RoundedBitmapDisplayer'''를 사용합니까? 둥근 모서리가 필요합니까? – NOSTRA

+0

그것은 단지 시험이었고, 나는 잊어 버렸습니다. 하지만 현재 코드에서는 사용하지 않습니다. – coutol

+0

"자신의 ImageDownloader 사용"은 무엇을 의미합니까? .imageDownloader (새로운 URLConnectionImageDownloader (5 * 1000, 20 * 1000))'''표준을 보았습니다. – NOSTRA

답변

3

당신은 GitHub의 추가 정보에서 복사 붙여 넣기 구성을 가지고있다. GitHub의이 설정은 모든 가능한 옵션을 보여 주지만 모든 옵션을 호출해서는 안됩니다.

올바른 프로젝트 튜닝 방법과 UIL을 사용하려면 예제 프로젝트 (UniversalImageLoaderExample)를 살펴 봐야합니다.