9

Bir görüntünün en boy oranını korumak ve Picasso kullanarak en/boy oranını bozmadan/değiştirmeden mümkün olduğunca büyük doldurmak/sığdırmak için yeniden boyutlandırmak istiyorum.Resim Yeniden Boyutlandırma Sırasında Resim Oranı Korumuyor

Şimdiye kadar bunu bulmuşken: kullanarak önerir

scaling image size in Picasso

:

.fit().centerInside() 

ancak güvenilir o zaman: my XML ile birlikte

 Picasso.with(this).load(boxart) 
.fit().centerInside() 
     .into(imageItem); 

:

... 



    <RelativeLayout 
     android:id="@+id/rl_ListView1" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_centerInParent="true" 
     android:layout_gravity="left" 
     android:layout_weight="0.3" > 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:scaleType="fitXY" 
      android:layout_gravity="left" 

      /> 
    </RelativeLayout> 



    ... 

Ancak görüntü hala bozuk görünüyor (çok uzun ve zayıf görünüyor - orijinal en boy oranı bozuk) ve neden emin değilim. Aşağıdaki

enter image description here

+0

(https://square.github.io/picasso/javadoc/com/squareup/picasso/RequestCreator.html#fit--) [oturması() '' için Javadoc] "o olacak diyor Resmi tam olarak hedefe sığdırmak için yeniden boyutlandırın ImageView ", yani en boy oranını göz ardı edin. –

+0

Evet, fakat 'centerInside()' bunu düzeltmeli, i. e. En boy oranını korurken görüntüyü 'ImageView' içine sığacak şekilde yeniden boyutlandırın. Ben 'android: scaleType: fitXY' sorun olduğundan şüpheleniyorum. –

+0

Bu aslında oldukça yardımcı oldu ... görüntü artık bozuldu ve en boy oranını koruyor - ancak yeniden boyutlandırma/doldurma (etrafında boş alan var) http://i.stack.imgur.com/ ZpCZ3.jpg http://pastebin.com/UXbuU3vv –

cevap

7

Сode çalışması gerekir:

.fit().centerCrop() 
1

CenterInside CenterInside() her iki boyutu ImageView istenen sınırlar eşit ya da daha az olacak şekilde ölçekler görüntü kırpma tekniktir . Görüntü tamamen görüntülenecek, ancak tüm ImageView'ı dolduramayabilir.

Picasso 
.with(context) 
.load(UsageExampleListViewAdapter.eatFoodyImages[0]) 
.resize(600, 200) 
.centerInside() 
.into(imageViewResizeCenterInside);