카테고리 없음

[기계적 인조 인간] 사용자 정의 크기 이미지 표시 Universal ImageLoader

행복을전해요 2021. 1. 24. 12:31

범용 이미지 로더를 사용하여 커버 플로에 사용자 지정 크기 이미지를 표시하기 위해 다음 코드를 사용하고 있습니다.

생성자에서 다음 DisplayImageOptions과 같이 설정하십시오 .

DisplayImageOptions options = new DisplayImageOptions.Builder()
      .showImageOnLoading(R.drawable.flyer_placeholder)
            .showImageForEmptyUri(R.drawable.flyer_placeholder)
                  .imageScaleType(ImageScaleType.EXACTLY)
                        .cacheInMemory(true)
                              .build();
                              
                              //set coverflow full screen, and images size.
                              
                                       coverFlow.setSpacing(-25);
                                                coverFlow.setAnimationDuration(1000);
                                                         coverFlow.setGravity(Gravity.CENTER_VERTICAL);
                                                                  coverFlow.setLayoutParams(new CoverFlow.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
                                                                  
                                                                           // GET SCREEN SIZE
                                                                                       WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
                                                                                                   Display display = wm.getDefaultDisplay();
                                                                                                   
                                                                                                               DisplayMetrics dm = new DisplayMetrics();
                                                                                                                           display.getMetrics(dm);
                                                                                                                           
                                                                                                                           //Here I am setting image size using my custom adapter in "dp". Avoid to use pixels as things will mess up for different screen sizes
                                                                                                                           
                                                                                                                                       coverImageAdapter.coverflowWidth = (int) Math.ceil(dm.widthPixels * (dm.densityDpi / 160.0));
                                                                                                                                                   coverImageAdapter.coverflowHeight = (int) Math.ceil(dm.heightPixels * (dm.densityDpi / 160.0)) / 2;
                                                                                                                                                   

어댑터의 setNewImage메서드 (에서 호출 됨 getView)에서 Gallery.LayoutParams 사용 :

void setNewImage(int position)
 {
      FeaturedFlyerData data = (FeaturedFlyerData) getItem(position);
      
           data.flyerImage = new ImageView(mContext);      
                data.flyerImage.setLayoutParams(new Gallery.LayoutParams(coverflowWidth, coverflowHeight));
                     data.flyerImage.setScaleType(ScaleType.CENTER_INSIDE);
                     }
                     


출처
https://stackoverflow.com/questions/22019822