programing

피카소를 사용하여 이미지 크기를 전폭 및 고정 높이로 조정

minecode 2022. 8. 25. 23:29
반응형

피카소를 사용하여 이미지 크기를 전폭 및 고정 높이로 조정

수직 Linear Layout을 사용하고 있습니다.여기서 아이템 중 하나가ImageView피카소를 이용해 장전했다.화상의 폭을 디바이스의 전폭으로 해, 잘라낸 화상의 중앙 부분을 고정 높이(150dp)로 표시할 필요가 있습니다.현재 다음과 같은 코드를 가지고 있습니다.

Picasso.with(getActivity()) 
    .load(imageUrl) 
    .placeholder(R.drawable.placeholder) 
    .error(R.drawable.error) 
    .resize(screenWidth, imageHeight)
    .centerInside() 
    .into(imageView);

어떤 가치를 넣어야 할까요?screenWidth그리고.imageHeight(=150dp)?

찾으시는 제품:

.fit().centerCrop()

의의:

  • fit- 다음 시간까지 기다립니다.ImageView는 측정되고 이미지의 크기가 정확히 일치하도록 조정되었습니다.
  • centerCrop- 가로 세로 비율을 기준으로 크기가 채워질 때까지 이미지를 조정합니다.크기와 정확히 일치하도록 위아래 또는 좌우 중 하나를 자르세요.

경우에 따라서는 fit()가 무용지물입니다.폭 및 높이 측정이 끝날 때까지 기다려야 합니다.그래서 글로발레이아웃리스테너를 사용하세요.예를 들어,

imageView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
            public void onGlobalLayout() {
                Picasso.with(getActivity())
                        .load(imageUrl)
                        .placeholder(R.drawable.placeholder)
                        .error(R.drawable.error)
                        .resize(screenWidth, imageHeight)
                        .fit
                        .centerInside()
                        .into(imageView);
                imageView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
            }
        });

언급URL : https://stackoverflow.com/questions/20823249/resize-image-to-full-width-and-fixed-height-with-picasso

반응형