खोज…


टिप्पणियों

चिह्न फ़ॉन्ट्स सामान्य फ़ॉन्ट प्रकारों की तरह होते हैं जिनमें अक्षरों के बजाय प्रतीक होते हैं। इसका उपयोग आपके एप्लिकेशन में सबसे अधिक आसानी से किया जा सकता है।

वो हैं:

  • लचीला
  • मापनीय
  • वैक्टर
  • फास्ट प्रोसेसेबल
  • हल्का वजन
  • सुलभ

आकार पर प्रभाव

Android उपकरणों के लिए विभिन्न आकारों में एक छवि निर्यात करने से आपके ऐप की लागत, प्रति छवि लगभग 30kB की अतिरिक्त संपत्ति का आकार होगा। लगभग 36 आइकन के साथ एक फ़ॉन्ट फ़ाइल (.ttf) जोड़ने पर सिर्फ 9kB खर्च होंगे। यदि आप विभिन्न विन्यासों की ३६ अलग-अलग फाइलों को जोड़ रहे हैं, तो केवल इस बात की कल्पना करें कि यह 1000kB के आसपास होगी। यह एक उचित स्थान है जिसे आप आइकन फोंट का उपयोग करके बचाएंगे।

चिह्न फ़ॉन्ट की सीमाएँ।

  • नेविगेशन ड्रॉअर में आइकन फोंट का उपयोग किया जा सकता है। मेनू आइटम के आइकन के रूप में नेविगेशन दृश्यों में उनका उपयोग करना संभव नहीं है क्योंकि शीर्षक निर्दिष्ट किए बिना मेनू फ़ाइल नहीं बनाई जा सकती है। इसलिए इन आइकन के लिए संसाधनों के रूप में svg फ़ाइलों का उपयोग करना उचित है।

  • आइकन फोंट का उपयोग फ्लोटिंग एक्शन बटन में नहीं किया जा सकता है। क्योंकि उनके पास setText() विशेषता नहीं है।

  • एक्सएमएल से बाहरी फोंट लागू नहीं किया जा सकता है। उन्हें जावा फ़ाइल का उपयोग करके निर्दिष्ट किया जाना चाहिए। या फिर आपको मूल दृश्य का विस्तार करने और इस पोस्ट में निर्दिष्ट दृश्य बनाने की आवश्यकता है

कैसे आइकन फोंट एकीकृत करने के लिए

आइकन फ़ॉन्ट का उपयोग करने के लिए, बस नीचे दिए गए चरणों का पालन करें:

  • अपने प्रोजेक्ट में फ़ॉन्ट फ़ाइल जोड़ें

    आप इस तरह के रूप में ऑनलाइन वेबसाइटों से अपने फॉन्ट आइकन फ़ाइल बना सकते हैं icomoon , जहां आवश्यक प्रतीक के एसवीजी फ़ाइलें अपलोड कर सकते हैं और फिर बनाया आइकन फॉन्ट डाउनलोड करें। फिर, .ttf फ़ॉन्ट फ़ाइल को एक फ़ोल्डर में रखें, जिसे फोंट नाम दिया गया है (इसे अपनी इच्छानुसार नाम दें) संपत्ति फ़ोल्डर में:

    वह स्थान जहाँ फ़ॉन्ट फ़ाइल रखी जाए

  • एक हेल्पर क्लास बनाएँ

    अब, निम्न सहायक वर्ग बनाएं, ताकि आप फ़ॉन्ट के लिए प्रारंभिक कोड दोहराने से बच सकें:

    public class FontManager {
      public static final String ROOT = "fonts/";
      FONT_AWESOME = ROOT + "myfont.ttf";
      public static Typeface getTypeface(Context context) {
        return Typeface.createFromAsset(context.getAssets(), FONT_AWESOME);
      }
    }
    

    आप संपत्ति से फ़ॉन्ट चुनने के लिए Typeface क्लास का उपयोग कर सकते हैं। इस तरह आप टाइपफेस को विभिन्न दृश्यों में सेट कर सकते हैं, उदाहरण के लिए, एक बटन को:

    Button button=(Button) findViewById(R.id.button);
    Typeface iconFont=FontManager.getTypeface(getApplicationContext());
    button.setTypeface(iconFont);
    

    अब, बटन टाइपफेस को नए बनाए गए आइकन फ़ॉन्ट में बदल दिया गया है।

  • इच्छित आइकन चुनें

    आइकॉन फॉन्ट से जुड़े स्टाइल्स को खोलें। फाइल। वहां आपको अपने आइकन के यूनिकोड पात्रों के साथ शैली मिलेगी:

    .icon-arrow-circle-down:before {
      content: “\e001”;
    }
    .icon-arrow-circle-left:before {
      content: “\e002”;
    }
    .icon-arrow-circle-o-down:before {
      content: “\e003”;
    }
    .icon-arrow-circle-o-left:before {
      content: “\e004”;
    }
    

    यह संसाधन फ़ाइल एक शब्दकोश के रूप में काम करेगी, जो एक विशिष्ट आइकन से जुड़े यूनिकोड चरित्र को मानव-पठनीय नाम से मैप करती है। अब, स्ट्रिंग संसाधन इस प्रकार बनाएँ:

    <resources>
      <! — Icon Fonts -->
      <string name=”icon_arrow_circle_down”>&#xe001; </string>
      <string name=”icon_arrow_circle_left”>&#xe002; </string>
      <string name=”icon_arrow_circle-o_down”>&#xe003; </string>
      <string name=”icon_arrow_circle_o_left”>&#xe004; </string>
    </resources>
    
  • अपने कोड में आइकन का उपयोग करें

    अब, आप अपने फ़ॉन्ट को विभिन्न दृश्यों में उपयोग कर सकते हैं, उदाहरण के लिए, इस प्रकार है:

    button.setText(getString(R.string.icon_arrow_circle_left))
    

    आप आइकन फोंट का उपयोग करके बटन पाठ दृश्य भी बना सकते हैं:

    उन पर आइकन वाले उदाहरण बटन

आइकन फ़ॉन्ट के साथ टैबलैट करें

public class TabAdapter extends FragmentPagerAdapter {

CustomTypefaceSpan fonte;
List<Fragment> fragments = new ArrayList<>(4);
private String[] icons = {"\ue001","\uE002","\uE003","\uE004"};

public TabAdapter(FragmentManager fm, CustomTypefaceSpan fonte) {
    super(fm);
    this.fonte = fonte
    for (int i = 0; i < 4; i++){
        fragments.add(MyFragment.newInstance());
    }
}

public List<Fragment> getFragments() {
    return fragments;
}

@Override
public Fragment getItem(int position) {
    return fragments.get(position);
}

@Override
public CharSequence getPageTitle(int position) {
    SpannableStringBuilder ss = new SpannableStringBuilder(icons[position]);
    ss.setSpan(fonte,0,ss.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
    ss.setSpan(new RelativeSizeSpan(1.5f),0,ss.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE );
    return ss;
}



@Override
public int getCount() {
    return 4;
}

}
//..
TabLayout tabs;
ViewPager tabs_pager;
public CustomTypefaceSpan fonte;
//..

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //...
    fm = getSupportFragmentManager();
    fonte = new CustomTypefaceSpan("icomoon",Typeface.createFromAsset(getAssets(),"myfont.ttf"));
    this.tabs = ((TabLayout) hasViews.findViewById(R.id.tabs));
    this.tabs_pager = ((ViewPager) hasViews.findViewById(R.id.tabs_pager));
    //...
}

@Override
protected void onStart() {
    super.onStart();
    //..
    tabs_pager.setAdapter(new TabAdapter(fm,fonte));
    tabs.setupWithViewPager(tabs_pager);
    //..


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow