অ্যান্ড্রয়েডের জন্য বৈধ মানগুলি: হরফফ্যামিলি এবং তারা কী মানচিত্র করে?


266

এই প্রশ্নের উত্তরে ব্যবহারকারী android:fontFamily12 টির জন্য মানগুলি তালিকাভুক্ত করে (নীচে দেখুন)। এই মানগুলি কোথা থেকে আসে? এর জন্য ডকুমেন্টেশনগুলি android:fontFamilyকোনও জায়গায় এই তথ্য তালিকাভুক্ত করে না (আমি এখানে এবং এখানে চেক করেছি )। স্ট্রিংগুলি অ্যান্ড্রয়েড স্টাইলস.এক্সএমএল ফাইলটিতে বিভিন্ন জায়গায় তালিকাভুক্ত করা হয়েছে , তবে কীভাবে এই মানচিত্রগুলি রোবোটো ফন্টে ফিরে আসে?

অ্যান্ড্রয়েড ৪.১ / ৪.২ থেকে নিম্নলিখিত রবোটো ফন্ট পরিবারগুলি উপলভ্য:

android:fontFamily="sans-serif"           // roboto regular  
android:fontFamily="sans-serif-light"     // roboto light  
android:fontFamily="sans-serif-condensed" // roboto condensed  
android:fontFamily="sans-serif-thin"      // roboto thin (android 4.2)  
android:fontFamily="sans-serif-medium"    // roboto medium (android 5.0)

এর সাথে মিলিয়ে

android:textStyle="normal|bold|italic" 

12 রূপগুলি সম্ভব:

  • নিয়মিত
  • ইট্যালির
  • সাহসী
  • বোল্ড, ইটালিক
  • আলো
  • হালকা ইটালিক
  • পাতলা
  • পাতলা ইটালিক
  • নিয়মিত ঘনীভূত
  • কনডেন্সড ইটালিক
  • সংক্ষিপ্ত সাহসী
  • সংক্ষিপ্ত সাহসী-তির্যক

ইন styles.xmlঅ্যাপ্লিকেশন আমি কারো উপর কাজ করছি ফাইল ফন্ট পরিবার হিসাবে এই তালিকাভুক্ত, এবং আমি সুন্দর নিশ্চিত এটা ভুল:

<item name="android:fontFamily">Roboto-Regular.ttf</item>

আমি আমাদের অ্যাপটির জন্য থিমটি সঠিকভাবে সেট আপ করতে চাই (যার মধ্যে ফন্টফ্যামিলি সঠিকভাবে ব্যবহার করা অন্তর্ভুক্ত) এবং ফাইলটি দেখার আগে আমার তৈরি কিছু স্টাইলের সমস্ত অপ্রয়োজনীয়তা সরিয়ে ফেলতে চাই।

উত্তর:


346

এই মানগুলি কোথা থেকে আসে? অ্যান্ড্রয়েডের জন্য ডকুমেন্টেশন: ফন্টফ্যামিলি এই তথ্যটি কোনও জায়গায় তালিকাভুক্ত করে না

এগুলি প্রকৃতপক্ষে নথিতে তালিকাভুক্ত নয়। তবে তাদের এখানে 'ফন্ট পরিবার' বিভাগে উল্লেখ করা হয়েছে । দস্তাবেজটিতে অ্যান্ড্রয়েড জেলি বিন বিনের জন্য প্রতিটি নতুন পাবলিক এপিআই তালিকাবদ্ধ করে।

অ্যাপ্লিকেশনটির স্টাইলস.এক্সএমএল ফাইলটিতে আমি ফন্ট পরিবার হিসাবে তালিকাভুক্ত কারও সাথে কাজ করছি এবং আমি নিশ্চিত যে এটি ভুল:

হ্যাঁ, এটা ভুল। আপনি ফন্ট ফাইলটি উল্লেখ করেন না, আপনাকে উপরের লিঙ্কযুক্ত নথিতে উল্লিখিত ফন্টের নামটি ব্যবহার করতে হবে। এক্ষেত্রে এটি হওয়া উচিত ছিল:

<item name="android:fontFamily">sans-serif</item>

ইতিমধ্যে বর্ণিত লিঙ্কযুক্ত উত্তরের মতো, 12 রূপগুলি সম্ভব:

অ্যান্ড্রয়েড জেলি বিন (4.1) এ যুক্ত হয়েছে - API 16:

নিয়মিত (ডিফল্ট):

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">normal</item> 

ইটালিক :

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">italic</item>

সাহসী :

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold</item>

বোল্ড-ইটালিক :

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold|italic</item>

হালকা :

<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">normal</item>

হালকা ইটালিক :

<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">italic</item>

পাতলা :

<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">normal</item>

পাতলা ইটালিক :

<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">italic</item>

নিয়মিত ঘনীভূত :

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">normal</item>

কনডেন্সড ইটালিক :

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">italic</item>

সংক্ষিপ্ত সাহসী :

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold</item>

সংক্ষিপ্ত সাহসী-তির্যক :

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold|italic</item>

অ্যান্ড্রয়েড ললিপপ (v5.0) এ যুক্ত হয়েছে - এপিআই 21:

মধ্যম :

<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">normal</item>

মাঝারি ইটালিক :

<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">italic</item>

কালো :

<item name="android:fontFamily">sans-serif-black</item>
<item name="android:textStyle">italic</item>

দ্রুত রেফারেন্সের জন্য, তারা সকলেই এমন দেখাচ্ছে:


2
হাহাহা: ডিআই আসলে সাইটের আগে তার সম্পর্কে জানত, তাই এটি খুঁজে পাওয়া খুব কঠিন ছিল না। তবে ভবিষ্যতের রেফারেন্সের জন্য: আমি গুগল অনুসন্ধানের উপরে ডেভেলপার.অ্যান্ড্রয়েড ডটকমের সন্ধানটি ব্যবহার করতে পছন্দ করি, যেহেতু আপনি অনুসন্ধানটি কেবলমাত্র এপিআই'র, ব্লগ পোস্টগুলিতে, রিলিজ নোট ইত্যাদির মধ্যে সীমাবদ্ধ করতে পারবেন
আহমাদ

8
আর আপনি যদি আগ্রহী হন যদি: এই হল সেই জায়গা যেখানে ফন্ট সংজ্ঞায়িত করা হয়। এই শ্রেণিটি ফন্টগুলি লোড করে এবং এটি তাদের সামঞ্জস্য করে।
আহমদ

1
@ অ্যান্ড্রয়েড ডেভেলপার সম্পন্ন হয়েছে। রোবোটো ব্ল্যাক হরফের রঙের উল্লেখ করে না, তবে এটি রোবোটো বোল্ডের একটি "আরও সাহসী" সংস্করণ। আমি নীচে একটি রেফারেন্স ইমেজ যুক্ত করেছি।
আহমদ

1
@ আহমাদ এটি পরিষ্কার করার জন্য আপনাকে ধন্যবাদ। এখানে আপনার +1 ... :)
অ্যান্ড্রয়েড বিকাশকারী

2
এছাড়াও, সেখানে fontFamily সঙ্গে ব্যবহার করার জন্য ওরফে অনেক আছে android.googlesource.com/platform/frameworks/base/+/master/data/...
Pauland

110

উপলব্ধ হরফ (ওরিও হিসাবে)

সমস্ত ফন্টের পূর্বরূপ

মেটারিয়াল ডিজাইন ছাপাখানার বিদ্যা পৃষ্ঠা ফন্ট এবং শৈলী নির্বাচন এই ফন্ট এবং প্রস্তাবনার কিছু গণদেবতা হয়েছে।

কোড sleuths জন্য: fonts.xmlঅ্যান্ড্রয়েড ফন্টগুলির চূড়ান্ত এবং সর্বদা প্রসারিত তালিকা।


এই ফন্টগুলি ব্যবহার করে

সেট android:fontFamilyএবং android:textStyleবৈশিষ্ট্যাবলী যেমন

<!-- Roboto Bold -->
<TextView
    android:fontFamily="sans-serif"
    android:textStyle="bold" />

এই টেবিল থেকে পছন্দসই মান:

Font                     | android:fontFamily          | android:textStyle
-------------------------|-----------------------------|-------------------
Roboto Thin              | sans-serif-thin             |
Roboto Light             | sans-serif-light            |
Roboto Regular           | sans-serif                  |
Roboto Bold              | sans-serif                  | bold
Roboto Medium            | sans-serif-medium           |
Roboto Black             | sans-serif-black            |
Roboto Condensed Light   | sans-serif-condensed-light  |
Roboto Condensed Regular | sans-serif-condensed        |
Roboto Condensed Medium  | sans-serif-condensed-medium |
Roboto Condensed Bold    | sans-serif-condensed        | bold
Noto Serif               | serif                       |
Noto Serif Bold          | serif                       | bold
Droid Sans Mono          | monospace                   |
Cutive Mono              | serif-monospace             |
Coming Soon              | casual                      |
Dancing Script           | cursive                     |
Dancing Script Bold      | cursive                     | bold
Carrois Gothic SC        | sans-serif-smallcaps        |

(নোটো সান্স একটি ফ্যালব্যাক ফন্ট; আপনি এটি সরাসরি উল্লেখ করতে পারবেন না)

দ্রষ্টব্য: এই টেবিলটি উত্পন্ন fonts.xml। প্রতিটি ফন্টের পরিবারের নাম এবং শৈলী fouts.xML এ তালিকাভুক্ত করা হয়, যেমন

<family name="serif-monospace">
    <font weight="400" style="normal">CutiveMono.ttf</font>
</family>

serif-monospaceএইভাবে হরফ পরিবার, এবং normalশৈলী হয়।


সঙ্গতি

Fouts.xml এবং প্রাক্তন system_fouts.xML এর লগের উপর ভিত্তি করে , আপনি প্রতিটি ফন্ট যুক্ত হওয়ার সময় দেখতে পাবেন:

  • আইসক্রিম স্যান্ডউইচ: রোবোটো নিয়মিত, সাহসী, তির্যক এবং সাহসী ইটালিক
  • জেলি বিন: রোবোটো হালকা, হালকা তির্যক, ঘনীভূত, ঘনীভূত সাহসী, ঘনীভূত তির্যক এবং ঘনীভূত তির্যক
  • জেলি বিন এমআর 1: রোবোটো পাতলা এবং পাতলা ইটালিক
  • Lollipop:
    • রোবোটো মাঝারি, মাঝারি ইটালিক, কালো এবং কালো তির্যক
    • নোটো সেরিফ নিয়মিত, সাহসী, তির্যক, সাহসী ইটালিক
    • পরের মনো
    • শীঘ্রই আসছে
    • নাচের স্ক্রিপ্ট
    • ক্যারোইস গথিক এসসি
    • নোটো সানস
  • ওরিও এমআর 1: রোবোটো কনডেন্সড মিডিয়াম

1
অ্যান্ড্রয়েড সংস্করণ সম্পর্কে লগটিতে আপনি কীভাবে খুঁজে পেয়েছেন?
অ্যান্ড্রয়েড বিকাশকারী

3
@ অ্যান্ড্রয়েড ডেভেলপার আমি প্রতিটি লাইন যুক্ত হওয়ার পরে তারিখগুলি দেখছিলাম। : জানতে অবিকল ফন্ট যা একটি নির্দিষ্ট সংস্করণে উপলব্ধ, যে সংস্করণ, Lollipop এ জন্য যেমন জন্য system_fonts.xml এ বর্ণন android.googlesource.com/platform/frameworks/base/+/...
Newtonx

আমার একমাত্র গ্রিপ এটির বর্ণমালা নয়: p তবে তবুও! এটি সেরা উত্তর হওয়া উচিত! ধন্যবাদ!
ডুডি

9

আমি যতদূর সচেতন, আপনি এক্সএমএল বা থিমগুলিতে কাস্টম ফন্টগুলি ঘোষণা করতে পারবেন না। আমি সাধারণত পাঠ্যদর্শন প্রসারিত কাস্টম ক্লাসগুলি তৈরি করি যা ইনস্ট্যান্টেশনে তাদের নিজস্ব ফন্ট সেট করে এবং আমার লেআউট xML ফাইলগুলিতে ব্যবহার করে।

অর্থাৎ,

public class Museo500TextView extends TextView {
    public Museo500TextView(Context context, AttributeSet attrs) {
        super(context, attrs);      
        this.setTypeface(Typeface.createFromAsset(context.getAssets(), "path/to/font.ttf"));
    }
}

এবং

<my.package.views.Museo900TextView
        android:id="@+id/dialog_error_text_header"
        android:layout_width="190dp"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:textSize="12sp" />

1
এটি আপনাকে একটি পুনর্ব্যবহারযোগ্য
দর্শনে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.