2014-07-25 38 views
14

Tôi có chế độ xem tùy chỉnh (1066 x 738) và tôi đang chuyển hình ảnh bitmap (720x343). Tôi muốn mở rộng bitmap để vừa với khung nhìn tùy chỉnh mà không vượt quá giới hạn của cha mẹ.Tỷ lệ bitmap thay đổi kích thước Android giữ tỷ lệ khung hình

enter image description here

tôi muốn đạt được một cái gì đó như thế này:

enter image description here

Làm thế nào tôi phải tính toán kích thước bitmap?

Làm thế nào tôi có thể tính chiều rộng mới/height:

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); 
    } 

Nhưng tất cả tôi đạt được là:

enter image description here

+0

Bạn có thể thêm cờ 'scaleType' vào XML của chế độ xem tùy chỉnh của mình. http://developer.android.com/reference/android/widget/ImageView.ScaleType.html –

+0

Nó không phải là một imageView! –

+0

Ah, tôi (sai) giả định chế độ xem hình ảnh mở rộng tùy chỉnh của bạn ... lỗi của tôi –

Trả lời

58

Bạn nên cố gắng sử dụng một ma trận chuyển đổi xây dựng cho ScaleToFit.CENTER. Ví dụ:

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

không hoạt động đối với tôi. Tôi đã thử giảm kích thước hình ảnh, theo độ phân giải, bằng cách sử dụng nhưng không hoạt động. – NarendraJi

+0

@DroidWormNarendra bạn có thể gọi là "Bitmap.createScaledBitmap (out, reqWidth, reqHeight, false);', điều này sẽ giảm kích thước hình ảnh. – zionpi

+0

@matiash, Vui lòng xem xét vấn đề này http://stackoverflow.com/questions/42927337/scaling-bitmaps-of-huge-images-from-url-into-image-view-according-to-device- reso – Siddharth

Các vấn đề liên quan