Tôi có một ứng dụng đã xuất bản bị lỗi khi khởi động trên Android N khi Display size
cài đặt hệ điều hành mới được giới thiệu được đặt thành giá trị quá lớn.
Khi tôi nhìn vào logcat, tôi thấy thông báo sau:
java.lang.RuntimeException: Canvas: trying to draw too large(106,975,232 bytes) bitmap.
Tôi đã tìm ra vấn đề với ImageView trong Hoạt động đầu tiên của mình, nó hiển thị một hình nền lớn đẹp mắt. Hình ảnh được đề cập là 2048x1066 và nằm trong drawables
thư mục chung của tôi , vì vậy bất kể mật độ, hình ảnh này sẽ được sử dụng.
Mọi thứ hoạt động ổn khi Display size
cài đặt Small
. Nhưng khi tôi đi lên Default
, nó ngừng hoạt động. Nếu sau đó tôi hoán đổi hình ảnh với một hình ảnh nhỏ hơn, nó hoạt động tại Default
, nhưng nếu tôi chuyển lên Large
, nó lại ngừng hoạt động.
Tôi đoán rằng việc điều chỉnh Display size
lên khiến thiết bị của bạn hoạt động giống như một thiết bị vật lý nhỏ hơn với mật độ điểm ảnh cao hơn. Nhưng tôi không hiểu mình phải làm gì ở đây. Nếu tôi đặt các hình ảnh nhỏ dần dần để có độ phân giải cao hơn dần dần, nó sẽ không đẹp trên các màn hình thực sự lớn. Hay tôi không hiểu điều gì đó?
Bât cư thông tin được cung câp nao cung được la sự suât hiện tuyệt vơi.
res/drawable/
là một từ đồng nghĩa vớires/drawable-mdpi/
. Nếu bạn muốn hình ảnh không bị thay đổi tỷ lệ dựa trên mật độ, hãy sử dụngres/drawable-nodpi/
hoặcres/drawable-anydpi/
.