[Android] Kinh nghiệm điều chỉnh font size tự động



Đỗ Thành Tài / 03-01-2019

Hiện tại Goolge đã hỗ trợ điều chỉnh font size tự động trên nhiều kích cỡ màn hình điện thoại (Android 8.0 trở lên). Link tham khảo: https://developer.android.com/guide/topics/ui/look-and-feel/autosizing-textview

android:autoSizeMaxTextSize="20sp" ---> Font size lớn nhất, lấy thông số của màn hình to nhất được hỗ trợ.
android:autoSizeMinTextSize="10sp" ---> Font size nhỏ nhất, lấy thông số của màn hình nhỏ nhất được hỗ trợ.
android:autoSizeStepGranularity="2sp" ---> Font size thay đổi mỗi lần tăng giảm.
android:autoSizeTextType="uniform" ---> uniform: font sẽ tự điều chỉnh, none: không điều chỉnh.
android:textSize="10sp" ---> Vẫn cần dòng này khi phiên bản Android không hỗ trợ sẽ sử dụng dòng này để set font size. Giá trị bằng với autoSizeMinTextSize.

Để đảm bảo font vẫn fit khi phiên bản Android không được hỗ trợ, cần cài đặt 2 máy ảo chạy trên phiên bản Android thấp hơn phiên bản Android được hỗ trợ. Một máy với kích cỡ màn hình nhỏ nhất sẽ hỗ trợ, máy còn lại với kích cỡ màn hình to nhất sẽ hỗ trợ. Máy với cỡ màn hình nhỏ nhất sử dụng để đo thông số autoSizeMinTextSize, máy kích cỡ màn hình to nhất sử dụng để đo thông số autoSizeMaxTextSize.

Set text size lần lượt cho tất cả các thành phần trên màn hình của 2 máy sao cho font chữ không bị vỡ hoặc overlap. Và lấy các thông số đó để set cho autoSizeMinTextSize và autoSizeMaxTextSize.

Thông số android:textSize vẫn được set theo autoSizeMinTextSize để trong trường hợp máy chạy phiên bản Android không được hỗ trợ sẽ lấy thông số này để chạy. Do là font size nhỏ nhất nên chắc chắn sẽ không xảy ra lỗi.


to-top