Nếu tôi có SDK mục tiêu tối thiểu cho ứng dụng được đặt là 4 thì tất cả các cuộc gọi đến Drawable.createFromStream sẽ đổi kích thước hình ảnh.Làm thế nào để tạo một Drawable từ một dòng mà không thay đổi kích thước nó?
ví dụ: nếu hình ảnh nguồn rộng 480 và các thiết bị Android ứng dụng của tôi đang chạy trên có mật độ 1,5 sau đó đoạn mã sau trả về một BitmapDrawable có chiều rộng 320
URL url = new URL("http://www.examples.com/something.png");
Drawable d = Drawable.createFromStream(url.openStream(), "something.png");
Có một phương pháp để buộc nó phải thay đổi hoặc chỉ định tỷ lệ (ldpi/mdpi/hdpi etC) để trả về một hình ảnh từ một InputStream?
Chỉnh sửa: Giải pháp từ bên dưới.
Bitmap b = BitmapFactory.decodeStream(inputStream);
b.setDensity(Bitmap.DENSITY_NONE);
Drawable d = new BitmapDrawable(b);
Tôi sẽ đi với phương thức 'BitmapDrawable()' khi nó đi thẳng đến điểm. Nó không được dùng nữa, nhưng không phải cho cấp API 4. Lý tưởng nhất là bạn sẽ sử dụng 'BitmapDrawable (Resource, InputStream)', nhưng điều đó không có sẵn cho bạn cho đến mức API 5. Một tùy chọn khác là thực hiện một cái gì đó như 'BitmapDrawable (Tài nguyên, bitmapFactory mới) .decodeStream (InputStream)) 'có sẵn ở cấp API 4 (nhưng không ít hơn). – DeeV
Điều này hoạt động nhờ. Tôi đã thêm bản chỉnh sửa để hiển thị cách chuyển đổi thành BitmapDrawable. – Johnny