Giả sử tôi có một kích thước cụ thể là TextView (không thực sự quan trọng ... fill_parent, 20dip, bất kỳ thứ gì). Có thể cho biết văn bản thu nhỏ/tăng kích thước để phù hợp với không gian có sẵn mà không làm nhiều toán học không?Mở rộng văn bản Định cỡ trong TextView
Trả lời
Không phải là tôi biết, xin lỗi.
Vâng, nó đơn giản hơn "rất nhiều toán học phức tạp", nhưng có một giải pháp hack tôi sử dụng cho điều này có thể thực hiện được nếu chiều rộng của văn bản không quá xa so với chiều rộng của chế độ xem văn bản.
Nếu chiều rộng của văn bản có thể khác với chiều rộng của TextView, tốt hơn là tìm kiếm nhị phân thay vì tìm kiếm tuyến tính để tìm kích thước phông chữ phù hợp.
Không nói đây là giải pháp lý tưởng, nhưng đó là giải pháp lý tưởng nếu bạn không thường xuyên điều chỉnh việc nhắn tin của mình. Nếu bạn cần phải thường xuyên điều chỉnh văn bản của bạn, nó có thể là tốt hơn để làm một số toán học phức tạp.
+1 Câu trả lời rất hay. Phải là IMO được chấp nhận. –
U có thể tính toán giá trị kích thước phông chữ ý tưởng cho một TextView. Đó là kích thước phông chữ sẽ lấp đầy nó mà không quá lớn. Công thức là:
fontSize = (TextView Height) * (width DPI/height DPI)/(Screen Width * Screen Height);
Chiều rộng và chiều cao DPI có thể được mua lại bởi Trọng phương pháp onConfigurationChanged trong hoạt động của bạn, và sử dụng newConfig.screenWidthDp và newConfig.screenHeightDp.
Kích thước màn hình bằng pixel có thể được mua bằng cách sử dụng chức năng helper sau
// Get Screen Size
static public Point getScreenSize(Activity aActivity)
{
Display display = aActivity.getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
return size;
}
tôi chỉ tính toán giá trị này khi cần thiết (trong onConfigurationChanged) và đẩy nó vào một số lớp helper tĩnh. Sau đó, khi một TextView cần xác định kích thước phông chữ nào sẽ sử dụng, nó sẽ kéo nó ra khỏi lớp này.
Nó hoạt động, nhưng có thể không phải là giải pháp đơn giản nhất.
Vô ích. Không tính đến độ dài của các ký tự. – AndroidDev
Tôi đã thử hầu như tất cả những điều trên và không thành công nhất kể cả phần trên cùng. Đơn giản nhất và hiệu quả nhất tôi tìm thấy là từ emmby nhưng thấy rằng bạn phải thiết lập văn bản ban đầu. Đây là một sự cải tiến về mình mà bạn không cần phải xác định bất kỳ textsize tại tất cả:
final String text = "HELP";
TextView tvFlash = (TextView) findViewById(R.id.tvFlash);
DisplayMetrics metrics = getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int height = metrics.heightPixels;
tvFlash.setText(text);
tvFlash.setTextSize(TypedValue.COMPLEX_UNIT_PX, 1);
int size = 1;
do
{
float textWidth = tvFlash.getPaint().measureText(text);
if (textWidth < width)
tvFlash.setTextSize(++size);
else
{
tvFlash.setTextSize(--size);
break;
}
}while(true);
- 1. Định cỡ một TextView đa dòng Android
- 2. Định tâm văn bản phông chữ lớn trong TextView
- 3. Thoát "" trong Văn bản trong TextView
- 4. Nhận chiều rộng văn bản trong MFC
- 5. Android TextView và nhận dòng văn bản
- 6. Android: Tự động cuộn văn bản trong TextView
- 7. định dạng chiều rộng văn bản vim
- 8. CSS DIV không mở rộng khi có thêm văn bản
- 9. Android: Textview với văn bản cuộn dọc
- 10. Chỉ báo tràn văn bản Android TextView?
- 11. TextView cắt văn bản khi đủ dài
- 12. Có thể cho TextView Marquee trong một Widget mở rộng AppWidgetProvider không?
- 13. màu nền css mở rộng xa như văn bản?
- 14. TextView bọc văn bản sau khi thay đổi kiểu chữ
- 15. Trường nhập văn bản, bọc văn bản thay vì mở rộng theo chiều ngang
- 16. Mở trình soạn thảo văn bản mặc định trong bash?
- 17. Android: Văn bản động tĩnh dưới dạng tĩnh trong TextView
- 18. Có thể gạch dưới các từ trong văn bản TextView
- 19. Cách đặt văn bản bên trong TextView thành hai dòng?
- 20. Android TextView trong BOLD và văn bản thông thường
- 21. Mở rộng tên tệp đúng cho định dạng tệp 'văn bản/làm giàu' của MIME?
- 22. Tính kích thước văn bản theo chiều rộng của vùng văn bản
- 23. định cỡ div dựa trên chiều rộng cửa sổ
- 24. Tự động thêm "..." nếu văn bản mở rộng chiều rộng nhất định, nhưng hiển thị nó trên di chuột?
- 25. Sao chép văn bản từ TextView trên Android
- 26. Kiểu hộp văn bản mặc định và chiều rộng
- 27. Định tâm một bảng rộng hơn cột văn bản
- 28. lấy văn bản đã chọn của cửa sổ trình biên tập .. tiện ích mở rộng studio mở rộng
- 29. getMeasuredHeight() của TextView với văn bản được gói
- 30. văn bản trong Java
hãy xem câu trả lời ở đây, hoạt động khá tốt: [nhập liên kết mô tả ở đây] [1] [1]: http://stackoverflow.com/questions/5033012/auto-scale-textview-text-to-fit-within-bounds – AllDayAmazing