এটি সহজ: ফন্টগুলির রেজোলিউশন মেলাতে হবে না, তাদের পিক্সেল ঘনত্বের সাথে মেলে নেওয়া দরকার ।
পিক্সেল ডেনসিটি পিক্সেল প্রতি ইঞ্চি ( পিপিআই ), বা পিক্সেল প্রতি সেন্টিমিটার হিসাবে পরিমাপ করা হয় । ঘনত্বের স্বাধীন পিক্সেল ( ডিপি ) নামে একটি পরিমাপের ইউনিট রয়েছে । এটি সংজ্ঞায়িত করা হয় যে স্ক্রিনে 1dp
এক পিক্সেল আকার রয়েছে 160 PPI
।
এখন ফন্টে ফিরে এসে, এই পরীক্ষাটি করার চেষ্টা করুন: আপনার ল্যাপটপটি 720p এ চালানোর জন্য রাখুন। ফন্টের আকারটি একবার দেখুন। এখন এটি আপনার ডেস্কটপের মনিটরে 1080p 42 এ প্লাগ করুন your যদি আপনার মনিটরটি তার আকার সম্পর্কে সঠিক তথ্য দেয় তবে ফন্টটি 720p স্ক্রিনে ঠিক একই আকারের হওয়া উচিত your আপনার পাঠ্যটিতে পাঠ্য থাকলে তা কতটা অদ্ভুত হবে তা কল্পনা করুন your ল্যাপটপের আপনার ডেস্কটপ মনিটরের পাঠ্যের চেয়ে আলাদা আকার ছিল thatএর সাথে বলা হয়েছে, বৃহত্তর রেজোলিউশনগুলি ফন্টকে আরও বিশদ দিতে হবে, বৃহত্তর স্ক্রিনগুলি আরও বেশি সামগ্রী দেখানোর জন্য দেওয়া উচিত।
একই ঘটনা পাঠ্য সম্পাদকদের উপর লক্ষ্য করা যায়। 72pt
কাগজে মুদ্রিত হওয়ার সময় কোনও ফন্টের পর্দায় যেমন দেখতে হবে তেমন দেখা উচিত।
এর সমস্ত অর্থ আপনার সম্ভবত সমস্ত প্রদর্শন আকারের (কিছু ব্যতিক্রম সহ) একই আকারটি চাওয়া উচিত। আপনি যদি নিজেকে কোথাও বেস করতে চান তবে ওয়েবসাইটগুলি সাধারণত 12pt
ফন্ট, এমএস উইন্ডোজ ব্যবহার 11pt
এবং 12pt
হরফ ব্যবহার করে।
এই চার্টটি (উত্তরের নীচেও অন্তর্ভুক্ত) আমাদের 12pt
সিএসএসে বলুন সিএসএসেও মোটামুটি সমান 16px
(যেমন এটি যথেষ্ট বিভ্রান্তিকর ছিল না, সিএসএসে একটি পিক্সেল অন্য কোথাও ডিপি এর সমান ), সুতরাং আসুন আপনাকে বলি আপনার ফন্টগুলি 16dp
LibGDX এ তৈরি করব make
আপনার গেমটিতে, FreeTypeFontGenerator
হরফ থেকে ফন্টগুলি তৈরি করতে ব্যবহার করুন , আপনি যখন পর্দা ঘনত্ব তৈরি করেন তখন তা বিবেচনা করতে পারেন:
BitmapFont createFont(FreeTypeFontGenerator ftfg, float dp)
{
return ftfg.generateFont((int)(dp * Gdx.graphics.getDensity()));
}
//On Init
BitmapFont buttonFont = createFont(arial, 16); //16dp == 12pt
এটি কাজ করে কারণ Gdx.graphics.getDensity()
এটি সমান YourScreenDensity/160
, এটি একটি "স্কেল ফ্যাক্টর" যা তারা 160ppi স্ক্রিনের আকারে জিনিস আনবে bring
আমি আগে বর্ণিত ব্যতিক্রমগুলি সম্পর্কে: লোগো, প্রমো ইত্যাদির ক্ষেত্রে আপনি সম্ভবত পর্দার আকার অনুসারে ফন্টগুলি পুনরায় আকার দিতে চাইবেন তবে মনে রাখবেন আপনি ফটোশপ বা জিম্পের মতো গ্রাফিক্স সম্পাদকটিতে এগুলি তৈরি করা থেকে ভাল হবেন you'll যাইহোক,
অন্য ব্যতিক্রমটি ছোট পর্দার পাঠ্য। 4.5 "বা ছোট ফোন পর্দা, পরিধেয়। সাধারণত আপনি স্ক্রলিং সামগ্রী তৈরি করতে সময় আছে না, অথবা আপনি শুধু স্ক্রীনে এত বিষয়বস্তু নির্বাণ কেনার ব্যাপারে সক্ষম হবেন না। আপনি ফন্ট আকার পরিবর্তন করতে চেষ্টা করতে পারে 1dp
যেমন, নিচে পাঠকের সম্ভবত মুখের খুব কাছাকাছি ফোন থাকবে, তাদের সম্ভবত পড়তে সমস্যা হবে না মনে রাখবেন আপনি পঠনযোগ্য অল্প পাঠ্য পঠক প্লেয়ারকে বিরক্ত করতে পারেন।
টি এল; ডিআর:
- শারীরিক আকার মোটামুটি স্ক্রিনের আকার বা রেজোলিউশনের সাথে সরাসরি পরিবর্তন হয় না, তবে উভয়ের সংমিশ্রণের সাথে (
screenSize/resolution
বিখ্যাত পিপিআই)
- চিন্তা করুন পর্তুগীজ ভাষায় এবং ডিপি । আপনাকে চূড়ান্ত ফলাফলটি আঁকতে না আসা পর্যন্ত স্ক্রিন পিক্সেলগুলি সম্পর্কে ভুলে যান।
- যুক্তিসঙ্গত আকারের সাথে রানটাইমের সময় আপনার ফন্টটি তৈরি করুন।
- ডিপি কে স্ক্রিন পিক্সেলে রূপান্তর করা হচ্ছে :
pixels = dp * Gdx.graphics.getDensity();
- আপনি যদি একটি ইঞ্জিন যা কোন আপনাকে কনভার্টার দিতে না ব্যবহার করে থাকেন dp LibGDX মত
Gdx.graphics.getDensity()
, আপনি চেষ্টা করতে পারেন: densityFactor = Screen.getPixelsPerInch() / 160.0f
তারপর,pixels = dp * densityFactor
সম্পাদনা করুন:
2014, 25 জুন গুগল আইওতে, মাতিয়াস অ্যান্ড্রয়েডের জন্য একটি নতুন শৈলীর নির্দেশিকা ঘোষণা করেছে, এতে একটি নতুন রোবোটো ফন্ট এবং টাইপোগ্রাফি নির্দেশিকা অন্তর্ভুক্ত রয়েছে। গাইড হিসাবে এই টেবিলটি নিন:
EDIT2:
লিঙ্কটি পচে যাওয়ার ক্ষেত্রে সিএসএস ফন্ট আকারের চার্ট অন্তর্ভুক্ত রয়েছে: