3

프로그래밍 방식으로 만들고 이미지를 Picasa를 사용하여로드하는 ImageView이 있습니다. ImageView의 높이와 너비는 WRAP_CONTENT으로 설정됩니다. 이미지가 꽤 큽니다. 따라서 피카소의 .fit().centerCrop() 메쏘드를 사용하여 메모리를 절약하고 싶습니다. 그러나 메서드를 추가 할 때 이미지가 나타나지 않으며 WRAP_CONTENT 때문에 있어야한다고 생각합니다. 여기에 내 코드입니다 :이에서 찾을 수피카소 .fit() .WAAP_CONTENT와 작동하지 않는 centerCrop()

ImageView iv = new ImageView(getContext()); 
RelativeLayout.LayoutParams centerParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
iv.setLayoutParams(centerParams); 
Picasso.with(context)load(path).fit().centerCrop().into(iv); //if I remove .fit().centerCrop(), the images load just fine 

유일한 정보는 그것에 대해 this issue on GitHub했다 - 문제가이 V2.4에 폐쇄되었다라고하면서, 어떤 사람들은 그들이 V2에서 발생한다는 논평했다. 5. 저는 여기에 안젤라의 제안에 따라, 지금 사용하고있는 작업은 다음과 같습니다 :

편집를 (나뿐만 아니라 V2.5을 사용하고 있습니다)

ImageView iv = new ImageView(getContext()); 
RelativeLayout.LayoutParams centerParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, dpToPx(350)); 
centerParams.addRule(RelativeLayout.CENTER_HORIZONTAL); 
iv.setLayoutParams(centerParams); 
iv.setAdjustViewBounds(true);          
iv.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
Picasso.with(getContext()).load(path).fit().into(iv); 

이미지가 지금까지 보여 주지만, 그들은 확장되지 않습니다 제대로, 종횡비가 어떻게 든 변경됩니다. 피카소가 .fit()에 대한 측정을 계속 허용하면서 가로 세로 비율을 유지하는 방법에 대한 아이디어가 있습니까?

답변

3

또한이 문제가 발생했습니다. 다음은 XML 파일의 예를 들어 scaleType, adjustViewBounds 및 layout_gravity 을 포함하려고

  Picasso 
        .with(context) 
        .load(path) 
        .fit() 
        .into(iv); 

... 내가 무슨 짓을했는지 :이 도움이

<ImageView 
       android:id="@+id/img_movie" 
       android:layout_width="match_parent" 
       android:layout_height="350dp" 
       android:scaleType="fitXY" 
       android:adjustViewBounds="true" 
       android:layout_gravity="center" 
       /> 

희망! :)

+0

감사합니다! :) 이미지가로드되지만 제대로 스케일링 할 수 없으며 가로 세로 비율이 계속 변경됩니다. 위의 업데이트 된 코드. – weirdo16

+0

나를 위해 작동하지 않습니다. –

1

사용

Picasso.with(getContext()).load(path).fit().centerInside().into(iv); 

또는

Picasso.with(getContext()).load(path).fit().centerCrop().into(iv);