Vì API Android Cấp 15 có methodpublic Drawable getDrawableForDensity (int id, int density)
để truy lục đối tượng có thể kéo được cho mật độ màn hình cụ thể. Có cách nào để thực hiện việc này trước API cấp 15 không?Có thể rút được mật độ cho Cấp API <15
Trả lời
Vì vậy, tôi thực sự nghĩ rằng nó có thể được giải quyết bằng cách sử dụng kỹ thuật đảo ngược của API Android và mã nguồn theo đề xuất của @ adtennant. Tôi bắt đầu viết giải pháp đó, nhưng trong quá trình nhấn một kết thúc chết như một API cơ bản (không phải Java) mà là cần thiết không có sẵn trong các phiên bản sau của Android.
Nếu bạn không quan tâm đến việc này chỉ với Bitmaps, như ngụ ý bởi nhận xét của bạn, có thể thực hiện điều này với BitmapFactory như được đề xuất. BitmapFactory có một phương pháp khác:
decodeResource(Resources res, int id, BitmapFactory.Options opts)
Phương pháp này chấp nhận thêm BitmapFactory.Options mà sẽ cho phép bạn chỉ định mật độ để tải. Điều này dường như đã tồn tại kể từ cấp API 1. Cụ thể, tôi tin rằng bạn có thể sử dụng:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inDensity = DisplayMetrics.DENSITY_MEDIUM; // whichever you want to load
options.inTargetDensity = getResources().getDisplayMetrics().densityDpi;
options.inScaled = true;
Điều này cũng sẽ mở rộng mật độ màn hình nếu mật độ không khớp được tải.
- 1. Sybase 15 có hỗ trợ api bcp trong java không?
- 2. Phần mềm chống vi-rút Windows Server 2008 có API
- 3. SimpleCursorAdapter không được chấp nhận trong API phiên bản 15?
- 4. Tôi có thể tìm thấy khóa API và bí mật API cho Facebook ở đâu?
- 5. Nếu một tài nguyên có thể vẽ được cung cấp cho ldpi, mdpi, hdpi, xhdpi, thì bạn không cần phải cung cấp tài liệu này cho nodpi?
- 6. Phát triển Android: api 14 vs api 15
- 7. Tại sao "Các nút trong thanh nút nên không viền" trong API Android Cấp 15?
- 8. Vấn đề tương thích với ActionBar với API 15
- 9. bảo mật API REST có thể truy cập được từ Android
- 10. fe_sendauth: không có mật khẩu được cung cấp
- 11. psql fe_sendauth không có mật khẩu được cung cấp
- 12. Mật mã .NET cho khóa cấp phép?
- 13. pgAdmin mang lại cho tôi những lỗi: không có mật khẩu được cung cấp
- 14. Không có tùy chọn bí mật nào được cung cấp cho Rack :: Session :: Cookie warning?
- 15. Tạo một ô mật độ cho các vùng có mật độ cao, điểm cho các vùng thưa thớt
- 16. Plugin Rails cho Khóa API + Ký tên khóa bí mật
- 17. "Tín hiệu 15 đã nhận được"
- 18. Chế độ xem lịch cho Android GingerBread và trước đó (API <11)
- 19. jpa tìm nạp các thực thể trên nhiều cấp độ với tiêu chí api
- 20. Tôi có thể cho biết iPhone có mật mã không?
- 21. Làm cách nào để duy trì tính tương thích ngược trong khi sử dụng API Android Cấp 15?
- 22. đặt mật độ tùy chỉnh cho trình mô phỏng
- 23. OnDragListener - có thư viện tương thích nào cho các cấp Android <11 không?
- 24. nhận vĩ độ & kinh độ theo địa chỉ được cung cấp cho tờ rơi
- 25. API âm thanh cấp thấp dành cho Android
- 26. Tab + Vuốt trong Android cho tất cả các cấp API
- 27. Tôi có thể cung cấp cho chế độ xem hoạt ảnh hiển thị trong emberjs
- 28. API thời gian thực/API có độ phân giải cao?
- 29. Có thể sử dụng mã hóa chế độ CTR AES bằng API EVP không?
Không cố gắng dày đặc, nhưng tại sao bạn không thể lấy Bản vẽ theo tên trống (ID tài nguyên) và để cho hệ điều hành tìm ra đúng? – Sparky
Điều đó làm việc tốt cho các bố trí XML của tôi, nhưng khi tôi tải bitmap thông qua BitmapFactory.decodeResource (Tài nguyên res, int id) nó cho thấy bitmap với độ phân giải nhỏ hơn. Có lẽ điều đó có liên quan đến việc mở rộng BitmapFactory, do đó tôi muốn chắc chắn rằng nó đang nạp tài nguyên thích hợp. Dù sao, khi vẽ lên canvas, có thể hữu ích khi có quyền truy cập vào các độ phân giải khác của bitmap, mà không bao gồm nhiều lần trong APK. –
Đó là sự thật, nhưng sau đó nếu bạn muốn lười biếng, bạn chỉ có thể bao gồm nó một lần và để cho hệ điều hành con số ra không có bất kỳ bản sao khác. Bạn có thể có thể lấy đi chỉ với MDPI hoặc HDPI cho một bức ảnh; dòng nghệ thuật sẽ không đẹp như vậy. – Sparky