2012-03-06 17 views
5

Mã bên dưới đổi kích thước bitmap và giữ tỷ lệ khung hình. Tôi đã tự hỏi nếu có một cách hiệu quả hơn thay đổi kích thước, bởi vì tôi có ý tưởng rằng tôi đang viết mã đã có sẵn trong API Android.Thay đổi kích thước bitmap

private Bitmap resizeImage(Bitmap bitmap, int newSize){ 
    int width = bitmap.getWidth(); 
    int height = bitmap.getHeight(); 

    int newWidth = 0; 
    int newHeight = 0; 

    if(width > height){ 
     newWidth = newSize; 
     newHeight = (newSize * height)/width; 
    } else if(width < height){ 
     newHeight = newSize; 
     newWidth = (newSize * width)/height; 
    } else if (width == height){ 
     newHeight = newSize; 
     newWidth = newSize; 
    } 

    float scaleWidth = ((float) newWidth)/width; 
    float scaleHeight = ((float) newHeight)/height; 

    Matrix matrix = new Matrix(); 
    matrix.postScale(scaleWidth, scaleHeight); 

    Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, 
      width, height, matrix, true); 

    return resizedBitmap; 
} 

Trả lời

0

Tôi thực sự không nghĩ như vậy, tôi đã thực hiện gần như cùng một cách như bạn, và nhận ý tưởng từ các trang nhà phát triển Android ...

0

Phụ thuộc vào cách bạn đang sử dụng hình ảnh . Nếu tất cả những gì bạn muốn làm là hiển thị bitmap trong View, chỉ cần gọi myImageView.setImageBitmap(bitmap) và để cho khuôn khổ thay đổi kích thước nó. Nhưng nếu bạn lo lắng về trí nhớ, việc mở rộng quy mô đầu tiên có thể là một cách tiếp cận tốt.