Vì yêu cầu của tôi là ghi đè lên textView hiện có findViewById(getResources().getIdentifier("xxx", "id", "android"));
, nên tôi không thể thử onDraw()
câu trả lời khác.
Nhưng tôi chỉ tìm ra các bước chính xác để khắc phục sự cố của mình, đây là kết quả cuối cùng từ Trình kiểm tra bố cục:
Vì những gì tôi muốn chỉ đơn thuần là xóa các khoảng trắng trên cùng, vì vậy tôi không phải chọn phông chữ khác để xóa các khoảng trắng ở dưới cùng.
Đây là mã quan trọng để sửa nó:
Typeface mfont = Typeface.createFromAsset(getResources().getAssets(), "fonts/myCustomFont.otf");
myTextView.setTypeface(mfont);
myTextView.setPadding(0, 0, 0, 0);
myTextView.setIncludeFontPadding(false);
Khóa đầu tiên được đặt phông chữ tùy chỉnh "phông chữ / myCustomFont.otf" có khoảng trắng ở dưới nhưng không ở trên cùng, bạn có thể dễ dàng tìm ra điều này bằng cách mở tệp otf và nhấp vào bất kỳ phông chữ nào trong android Studio:
Như bạn có thể thấy, con trỏ ở phía dưới có khoảng cách thêm nhưng không ở trên cùng, vì vậy nó đã khắc phục vấn đề của tôi.
Khóa thứ hai là bạn không thể bỏ qua bất kỳ mã nào , nếu không nó có thể không hoạt động. Đó là lý do bạn có thể tìm thấy một số người nhận xét rằng một câu trả lời đang hoạt động và một số người khác nhận xét rằng nó không hoạt động.
Hãy minh họa những gì sẽ xảy ra nếu tôi loại bỏ một trong số chúng.
Không có setTypeface(mfont);
:
Không có setPadding(0, 0, 0, 0);
:
Không có setIncludeFontPadding(false);
:
Không có 3 trong số họ (tức là bản gốc):