เนื่องจากความต้องการของฉันถูกแทนที่ textView ที่มีอยู่ได้รับfindViewById(getResources().getIdentifier("xxx", "id", "android"));
ดังนั้นฉันจึงไม่สามารถลองonDraw()
คำตอบอื่น ๆ ได้
แต่ฉันเพิ่งหาขั้นตอนที่ถูกต้องในการแก้ไขปัญหาของฉันนี่คือผลลัพธ์สุดท้ายจากตัวตรวจสอบเค้าโครง:
เนื่องจากสิ่งที่ฉันต้องการคือเพียงลบช่องว่างด้านบนออกดังนั้นฉันจึงไม่ต้องเลือกแบบอักษรอื่นเพื่อลบช่องว่างด้านล่าง
นี่คือรหัสที่สำคัญในการแก้ไข:
Typeface mfont = Typeface.createFromAsset(getResources().getAssets(), "fonts/myCustomFont.otf");
myTextView.setTypeface(mfont);
myTextView.setPadding(0, 0, 0, 0);
myTextView.setIncludeFontPadding(false);
กุญแจแรกคือการตั้งค่าแบบอักษรที่กำหนดเอง "fonts / myCustomFont.otf" ซึ่งมีพื้นที่ด้านล่าง แต่ไม่อยู่ด้านบนคุณสามารถเข้าใจได้โดยเปิดไฟล์ otf และคลิกแบบอักษรใด ๆ ใน android Studio:
อย่างที่คุณเห็นเคอร์เซอร์ด้านล่างมีระยะห่างพิเศษ แต่ไม่ใช่ที่ด้านบนดังนั้นจึงแก้ไขปัญหาของฉันได้
กุญแจดอกที่สองคือคุณไม่สามารถข้ามรหัสใด ๆ ได้เลยมิฉะนั้นอาจใช้งานไม่ได้ นั่นคือเหตุผลที่คุณพบว่าบางคนแสดงความคิดเห็นว่าคำตอบนั้นใช้ได้และคนอื่น ๆ แสดงความคิดเห็นว่ามันไม่ทำงาน
มาอธิบายกันว่าจะเกิดอะไรขึ้นถ้าฉันลบอันใดอันหนึ่งออก
โดยไม่ต้องsetTypeface(mfont);
:
โดยไม่ต้องsetPadding(0, 0, 0, 0);
:
โดยไม่ต้องsetIncludeFontPadding(false);
:
ไม่รวม 3 รายการ (เช่นต้นฉบับ):