আসুন প্রথমে ডকুমেন্টেশন কী বলে তা পর্যালোচনা করুন :
- শীর্ষস্থানীয় - প্রদত্ত পাঠ্যের আকারে ফন্টের দীর্ঘতম গ্লাইফের জন্য বেসলাইনটির সর্বোচ্চ সীমা।
- অ্যাসেন্ট - একক ব্যবধানযুক্ত পাঠ্যের জন্য বেসলাইনের উপরে প্রস্তাবিত দূরত্ব।
- উত্থান - একক ব্যবধানযুক্ত পাঠ্যের জন্য বেসলাইনের নীচে প্রস্তাবিত দূরত্ব।
- নীচে - প্রদত্ত পাঠ্যের আকারে ফন্টের সর্বনিম্ন গ্লাইফের জন্য বেসলাইনটির নীচে সর্বোচ্চ দূরত্ব।
- শীর্ষস্থানীয় - পাঠ্যের লাইনের মধ্যে যুক্ত করার জন্য প্রস্তাবিত অতিরিক্ত স্থান।
নোট করুন যে বেসলাইনটি প্রথম চারটি থেকে মাপা হয়। এটি কিছুটা অক্ষরের (যেমন জি, ওয়াই, জে, ইত্যাদি) রেখার নীচে যেতে পারে এমন অংশগুলি থাকা সত্ত্বেও এটি লাইনটি পাঠ্যটি যে বেসটি বসে তার ভিত্তি তৈরি করে । আপনি রেখাযুক্ত নোটবুকে যে রেখাগুলি লিখেছেন তা এটি তুলনামূলক।
এই জিনিসগুলি কল্পনা করতে সহায়তা করার জন্য এখানে একটি চিত্র দেওয়া হয়েছে:
মনে রাখবেন যে জাভা এবং অ্যান্ড্রয়েডে কোনও ক্যানভাসে অঙ্কন করার সময়, নীচে যাওয়া y এর বৃদ্ধি এবং উপরে যাওয়া y এর হ্রাস । এর অর্থ হ'ল ফন্টমেট্রিক্স ' top
এবং ascent
নেতিবাচক সংখ্যাগুলি যেহেতু এগুলি বেসলাইন থেকে পরিমাপ করা হয় (যখন উত্পন্ন এবং নীচে ইতিবাচক সংখ্যা)। সুতরাং, আপনার থেকে দূরত্ব পাওয়ার top
জন্য bottom
( bottom
- top
) করা দরকার।
নেতৃস্থানীয় এক লাইন নীচে এবং পরবর্তী লাইন উপরের মধ্যে দূরত্ব। উপরের ছবিটিতে যে, এটা লাইন 1 কমলা এবং লাইন 2. হিসাবে @MajorTom এর রক্তবর্ণ মধ্যে স্থান নিচে উল্লিখিত , লেখনী শব্দটি আরো সঠিকভাবে হিসাবে সংজ্ঞায়িত করা হয় "টাইপ ধারাবাহিক লাইনের ভিত্তিরেখা মধ্যে দূরত্ব।" * তবে, অ্যান্ড্রয়েড শব্দটিকে আরও historicalতিহাসিক অর্থে ব্যবহার করেছে বলে মনে হয়। শব্দটি (উচ্চারিত "লেডিংডিং") সেই লিড স্ট্রিপ থেকে এসেছে যা পুরানো টাইপসেটরগুলি টাইপের লাইনের মধ্যে রাখত। এটি মূলত লাইন ব্যবধানকে সামঞ্জস্য করার এক উপায় ছিল। অ্যান্ড্রয়েডে আমি প্রথমে নেতৃত্ব ছাড়া আর কিছুই হতে দেখিনি0
এবং আমি সোর্স কোডে এটি কোনও কিছুর জন্য ব্যবহার করতে দেখিনি। (সঠিক আমাকে যদি জানেন যেখানে এটি ক্যালকুলেট কিছু করতে ব্যবহৃত হয়।) আপনি একটি পংক্তি ব্যবধান পরিবর্তন করতে পারেন TextView
সঙ্গে setLineSpacing
কোড বা মধ্যে android:lineSpacingExtra
এবং android:lineSpacingMultiplier
XML- এর। এই পদ্ধতিগুলি তবে অগ্রণী ব্যবহার করে বা সংশোধন করে না।
আরও তথ্যের জন্য এই লিঙ্কগুলি দেখুন:
আরও এক্সপ্লোর করুন
আরও ফন্ট মেট্রিক্স অন্বেষণ করতে, আমি একটি সহজ প্রকল্প তৈরি করেছি।
বরং এখানে সমস্ত কোড তালিকাভুক্ত। আমি প্রকল্পটি গিটহাবের সাথে যুক্ত করেছি । আপনি হয় প্রকল্পটি ক্লোন করতে পারেন, বা নিম্নলিখিত প্রকল্পগুলিকে একটি নতুন প্রকল্পে অনুলিপি করতে পারেন।
চিঠিগুলি কি কখনও উপরে top
বা নীচে যায় bottom
?
সাধারণত না, তবে তারা পারত। উপরে এবং নীচে, যেমন আমি তাদের বুঝতে পারি, ফন্টটি সেট করে (অতএব "ফন্টমেট্রিক্স"), সুতরাং একটি ফন্ট নির্মাতা একটি গ্লাইফকে তারা যেটি বলে উপরেরটি (বা নীচের চেয়ে কম) এর চেয়ে বেশি যেতে পারে। এছাড়াও, ইউনিকোডে ডায়াক্রিটিকাল চিহ্নগুলির সংমিশ্রণের সাথে এটি খুব সহজেই ঘটতে পারে। এখানে একটি বরং চরম উদাহরণ ( এখান থেকে নেওয়া)): M̵̳̙͔̟̱͕̓̀̄̉̅ͧ̋͊͌͑́͌ͪ̒̿̀̚a͔̟̝͔ͥ̈́̏ͮͯ̇͆̊̒ͦͦ͘͢͜y̵̴̢͕̝̩̱͈͕̼̣͕̟̌͗̾ͤ̎͌̄ͣͨ͊ͬb̡̯̰̪̜͙̟̝̠͚̜̥̙̤̃ͨ̋̒̒̊ͧͤ͐̓͋̌̾̇̔̈́̀́͡͠e̵ͯͪ̿̿̂̄ͫ̃҉͏͎̣̹̱̜͉̦̞̪̘̠̝̝͍̼̜̖̥̭͟ ̣̞͙͚̝̰̞̹̗̲̣͙͍͍̀̓͊̂̋ͣ̏̑̍̊͌ͩ͐̎̀ͣͣ̚͟ͅh̛͋̏̍̆ͤ͛͐ͨ̌̋ͤ̎̂ͨ̂̓̑̚̕͟͏̻̣͖̖͚͚͓̲̼̪ȁ̔̅̿͐̑͡͏̝͓̮͚̘̦̰͚͎͔͉͚̮̠̕͜ͅṱ̱̼̖̓̂ͭ̏̅͂ͥ͌ͯ͌͠sͪ̓ͪ̄̌̓ͧ͋͐ͬ̅̑҉̨̪̬͎͍̥̬? ̡̮̳͙͓͔̹̘̹͓̘̻̦̣͎̫̐ͤ̐͛́͝ ̴̦̗̬̠͙̭͉̟̺͇̭̰͔͕̯̅̃͋ͪ̈́̉̓̌ͯ̈́͆̋̀ͤ̇̂̿̈́̂͡͡Ṱ̲͎͉̣̳̺̱̜̦̬͕̣͉͇͊̌ͥ͐͒̈́̓́ͥ́́̋͂̅ͬ̆͗ͥ̕͢͡A̴̦̗̬̠͙̭͉̟̺͇̭̰͔͕̯̅̃͋ͪ̈́̉̓̌ͯ̈́͆̋̀ͤ̇̂̿̈́̂͡͡Ṱ̲͎͉̣̳̺̱̜̦̬͕̣͉͇͊̌ͥ͐͒̈́̓́ͥ́́̋͂̅ͬ̆͗ͥ̕͢͡S̍ͧ͗̒͗̂̈ͬ͊̚̚͢͏̗̣̳ͅ!
অ্যান্ড্রয়েডে সেই স্ট্রিংটি প্লাগ করে আমরা এটি পাই:
ডায়াক্রিটিক্যাল চিহ্নের উপরে যেতে top
এবং নিচে bottom
। এটি লক্ষণীয় আকর্ষণীয় যে মোট প্রস্থ এবং উচ্চতা যদিও সঠিকভাবে পাঠ্যের সীমানা দ্বারা পরিমাপ করা হয়।
যাইহোক, আপনার প্রোগ্রামিংয়ের সমস্ত ব্যবহারিক উদ্দেশ্যে, আপনি কেবল ধরে নিতে পারেন যে গ্লিফ বর্ণগুলির জন্য সর্বাধিক এবং ন্যূনতম top
এবং bottom
। এবং সাধারণত তারা ascent
এবং এর মধ্যেই থাকবে decent
। যে কোনও কারণে যদি আপনার চিঠিগুলি অতিক্রম করে থাকে top
বা bottom
আপনি ব্যবহার করতে পারেন তা নিশ্চিতভাবে জানতে হবে TextPaint.getTextBounds
।