2014-07-25 7 views
14

ho una visualizzazione personalizzata (1066 x 738), e sto passando un'immagine bitmap (720x343). Voglio ridimensionare la bitmap per adattarla alla vista personalizzata senza superare il limite del genitore.Android ridimensionamento bitmap rapporto di tenuta aspetto

enter image description here

voglio ottenere qualcosa di simile:

enter image description here

Come devo calcolare la dimensione bitmap?

Come calcolare la nuova larghezza/altezza:

public static Bitmap getScaledBitmap(Bitmap b, int reqWidth, int reqHeight) 
    { 
     int bWidth = b.getWidth(); 
     int bHeight = b.getHeight(); 

     int nWidth = reqWidth; 
     int nHeight = reqHeight; 

     float parentRatio = (float) reqHeight/reqWidth; 

     nHeight = bHeight; 
     nWidth = (int) (reqWidth * parentRatio); 

     return Bitmap.createScaledBitmap(b, nWidth, nHeight, true); 
    } 

Ma tutto quello che sono il raggiungimento è questo:

enter image description here

+0

È possibile aggiungere un contrassegno 'scaleType' al codice XML della vista personalizzata. http://developer.android.com/reference/android/widget/ImageView.ScaleType.html –

+0

Non è un imageView! –

+0

Ah, (a torto) ha assunto la visualizzazione personalizzata esteso ImageView ... colpa mia –

risposta

58

Si dovrebbe provare a utilizzare una matrice di trasformazione costruita per ScaleToFit.CENTER. Ad esempio:

Matrix m = new Matrix(); 
m.setRectToRect(new RectF(0, 0, b.getWidth(), b.getHeight()), new RectF(0, 0, reqWidth, reqHeight), Matrix.ScaleToFit.CENTER); 
return Bitmap.createBitmap(b, 0, 0, b.getWidth(), b.getHeight(), m, true); 
+1

non funziona per me. Ho provato a ridurre la dimensione dell'immagine, in risoluzioni, usando questo, ma non ha funzionato. – NarendraJi

+0

@DroidWormNarendra si può quindi chiamare 'Bitmap.createScaledBitmap (fuori, reqWidth, reqHeight, false);', questo ridurrà la dimensione dell'immagine. – zionpi

+0

@matiash, si prega di dare un'occhiata a questo problema http://stackoverflow.com/questions/42927337/scaling-bitmaps-of-huge-images-from-url-into-image-view-according-to-device- reso – Siddharth