Có thể thay đổi thiết bị cho Paint.setTextSize()
không? Theo tôi biết, đó là pixel nhưng tôi muốn đặt kích thước văn bản trong DIP cho hỗ trợ nhiều màn hình.Cách đặt đơn vị cho Paint.setTextSize()
Trả lời
Chuyển đổi nó như thế này
// The gesture threshold expressed in dip
private static final float GESTURE_THRESHOLD_DIP = 16.0f;
// Convert the dips to pixels
final float scale = getContext().getResources().getDisplayMetrics().density;
mGestureThreshold = (int) (GESTURE_THRESHOLD_DIP * scale + 0.5f);
// Use mGestureThreshold as a distance in pixels
từ đây http://developer.android.com/guide/practices/screens_support.html#dips-pels
Tôi biết chủ đề này là cũ và đã trả lời nhưng tôi muốn cũng cho thấy đoạn mã này:
int MY_DIP_VALUE = 5; //5dp
int pixel= (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
MY_DIP_VALUE, getResources().getDisplayMetrics());
Và đây còn là phương pháp ngắn hơn để chuyển đổi dp-s thành px-els lấy số liệu hiển thị thành tài khoản
Nếu đối tượng Paint của bạn đang được sử dụng để vẽ văn bản trên Canvas, bạn có thể cho phép xử lý Canvas mở rộng cho bạn.
Khi gọi số Canvas.drawText()
, kích thước văn bản đầu tiên được xác định bởi đối tượng được chuyển trong đối tượng Paint
, có thể được đặt qua Paint.setTextSize()
. Kích thước văn bản được tự động thu nhỏ theo số Canvas
dựa trên mật độ canvas, có thể được tìm thấy bằng cách sử dụng Canvas.getDensity()
.
Khi đặt kích thước văn bản trên đối tượng sơn sẽ được vẽ trên Canvas, hãy làm việc với giá trị đơn vị là dp
hoặc sp
và để Canvas xử lý mở rộng cho bạn.
trong 'Paint.setTextSize (float textSize)' 'cái textSize' là một giá trị pixel. Nó dường như không chắc chắn với tôi rằng điều này được tự động thu nhỏ. Nếu nó đã làm sau đó tôi nghĩ rằng tài liệu sẽ nói rằng các đơn vị là 'sp' hoặc' dp' chứ không phải là pixel. – Suragch
Câu trả lời được chấp nhận dành cho cử chỉ, không đặt kích thước văn bản. Câu trả lời bình chọn cao nhất (tại thời điểm viết bài này) là gần nhưng tài liệu khuyến cáo sử dụng sp
thay vì dp
vì ngoài việc được chia tỷ lệ màn hình (như dp
giá trị), sp
cũng được chia tỷ lệ theo kích thước phông chữ của người dùng. @ pelotasplus của câu trả lời chỉ hoạt động nếu bạn đang nhận được giá trị từ các nguồn lực.
Từ một int
trong mã
int spSize = 17;
float scaledSizeInPixels = spSize * getResources().getDisplayMetrics().scaledDensity;
mTextPaint.setTextSize(scaledSizeInPixels);
Hoặc cách khác
int spSize = 17;
float scaledSizeInPixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,
spSize, getResources().getDisplayMetrics());
mTextPaint.setTextSize(scaledSizeInPixels);
Từ nguồn
Hoặc nếu bạn có sp
hoặc dp
giá trị tài nguyên:
<resources>
<dimen name="fontSize">17sp</dimen>
</resources>
với
float scaledSizeInPixels = getResources().getDimensionPixelSize(R.dimen.fontSize);
mTextPaint.setTextSize(scaledSizeInPixels);
liên kết khác
- 1. Cách đặt Nhiệm vụ (sfBaseTask) theo đơn vị nhất?
- 2. trình cài đặt thử nghiệm đơn vị
- 3. Kiểm tra đơn vị - đặt một SqlDataReader
- 4. Cách viết Kiểm tra Đơn vị cho JAXB 2.0 Marshalling
- 5. Cách sử dụng regex cho đơn vị tiền tệ
- 6. Đơn vị khoảng cách cho CultureInfo hiện tại trong .Net
- 7. khung kiểm tra đơn vị cho C
- 8. persistence.xml cho nhiều đơn vị liên tục
- 9. Khung kiểm tra đơn vị cho Vala
- 10. Kiểm tra đơn vị cho PL/SQL
- 11. Parse Python String cho đơn vị
- 12. Global.asax cho bài kiểm tra đơn vị?
- 13. Tương tự WPF cho đơn vị 'em'
- 14. Cho đệm với setPadding với đơn vị nhúng không px đơn vị
- 15. quy ước đặt tên gói thử nghiệm đơn vị
- 16. Xuất (đặt, in) trong Kiểm tra Đơn vị Rails
- 17. Có nên đặt Ember.testing = true cho các bài kiểm tra đơn vị không?
- 18. Các đơn vị sử dụng cho maxdistance và MongoDB?
- 19. Cách đặt vị trí gốc cho bộ định tuyến AngularJS?
- 20. Cách đặt vị trí cho ảnh đã chụp bằng UIImagePickerController?
- 21. Cách thêm đơn vị sử dụng mệnh đề của đơn vị hiện tại
- 22. Quy ước đặt tên thử nghiệm đơn vị Python cho các chức năng mô-đun
- 23. Tư vấn kiểm tra đơn vị - cách kiểm tra đơn vị của bạn .asmx
- 24. Khung kiểm tra đơn vị cho Oracle PL/SQL?
- 25. Đơn vị kiểm tra TSQL
- 26. Thử nghiệm đơn vị với số đơn
- 27. Làm cách nào để tôi có thể đặt tăng đơn vị cho một ngăn cuộn trong JavaFX?
- 28. Đơn vị iTextSharp
- 29. Đặt tọa độ đơn cho RGeo Point
- 30. Địa phương hóa đơn vị tiền tệ cho iPhone
một cách tiếp cận simalar có sử dụng một tập tin tài nguyên http://stackoverflow.com/a/5369766/1815624 – CrandellWS