Im tạo ứng dụng cần giải mã ảnh lớn thành bitmap để hiển thị trong ImageView.Android: Chiều rộng và chiều cao tối đa cho phép của bitmap
Nếu tôi chỉ cố gắng để giải mã chúng thẳng vào một bitmap tôi nhận được lỗi sau "Bitmap quá lớn để được tải lên thành một kết cấu (1944x2592, max = 2048x2048)"
Vì vậy, để có thể hiển thị hình ảnh với độ phân giải quá cao im sử dụng:
Bitmap bitmap = BitmapFactory.decodeFile(path);
if(bitmap.getHeight()>=2048||bitmap.getWidth()>=2048){
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;
bitmap =Bitmap.createScaledBitmap(bitmap, width, height, true);
}
này hoạt động nhưng tôi không thực sự muốn hardcode giá trị tối đa là 2048 như tôi có trong if-tuyên bố bây giờ, nhưng tôi không thể tìm ra cách để có được một sự kích thước tối đa cho phép của bitmap cho một thiết bị
Bất kỳ ý tưởng nào?
Cảm ơn bạn đã trả lời, đây cũng là điều tôi đang nghĩ. Bất kỳ ý tưởng bao nhiêu thay đổi này từ các thiết bị khác nhau? – Fredkr
Thành thật mà nói, tôi không chắc chắn. Đó là lý do tại sao tôi đã thử hai thiết bị. Nếu tôi có thể tìm được chiếc HTC Magic cũ của mình, tôi cũng đã thử cái đó.Tôi biết trên OpenGL tiêu chuẩn spec cho biết nó luôn luôn> = 1024, nhưng tôi không chắc chắn về OpenGLES. – Geobits
Được rồi, cảm ơn một lần nữa. Đoán i'l hardcode một giá trị 1024 để chắc chắn. – Fredkr