সম্পূর্ণ অ্যান্ড্রয়েড অ্যাপ্লিকেশনের জন্য কীভাবে ডিফল্ট ফন্ট পরিবার সেট করবেন


282

আমি আমার অ্যাপে রোবোটো লাইট ফন্ট ব্যবহার করছি। ফন্টটি সেট করতে আমি android:fontFamily="sans-serif-light"প্রতিটি ভিউতে যুক্ত করতে চাই। পুরো অ্যাপটিতে রবোটো ফন্টকে ডিফল্ট ফন্ট পরিবার হিসাবে ঘোষণা করার কোনও উপায় আছে কি? আমি এরকম চেষ্টা করেছি তবে মনে হয় এটি কাজ করে না।

<style name="AppBaseTheme" parent="android:Theme.Light"></style>

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:fontFamily">sans-serif-light</item>
</style>

2
এটি আপনাকে সাহায্য করতে পারে: stackoverflow.com/a/16883281/1329733
জ্যাকব আর

2
আপনি এখন XML থেকে অ্যান্ড্রয়েড স্টুডিও
সাত

উত্তর:


289

উত্তরটি হল হ্যাঁ.

TextViewএবং Buttonক্লাসগুলির জন্য গ্লোবাল রোবোটো আলো :

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:textViewStyle">@style/RobotoTextViewStyle</item>
    <item name="android:buttonStyle">@style/RobotoButtonStyle</item>
</style>

<style name="RobotoTextViewStyle" parent="android:Widget.TextView">
    <item name="android:fontFamily">sans-serif-light</item>
</style>

<style name="RobotoButtonStyle" parent="android:Widget.Holo.Button">
    <item name="android:fontFamily">sans-serif-light</item>
</style>

তালিকা থিম.এক্সএমএল থেকে আপনার পছন্দসই স্টাইলটি নির্বাচন করুন , তারপরে আসলটির উপর ভিত্তি করে আপনার কাস্টম স্টাইলটি তৈরি করুন। শেষে, অ্যাপ্লিকেশনটির থিম হিসাবে শৈলী প্রয়োগ করুন।

<application
    android:theme="@style/AppTheme" >
</application>

এটি কেবল রোবোটোর মতো বিল্ট-ইন ফন্টগুলির সাথে কাজ করবে, তবে এটি ছিল প্রশ্ন। কাস্টম ফন্টগুলির জন্য (উদাহরণস্বরূপ সম্পত্তি থেকে লোড করা) এই পদ্ধতিটি কাজ করবে না।

সম্পাদনা 08/13/15

আপনি যদি অ্যাপকম্প্যাট থিম ব্যবহার করছেন তবে android:উপসর্গটি সরিয়ে ফেলতে ভুলবেন না । উদাহরণ স্বরূপ:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:textViewStyle">@style/RobotoTextViewStyle</item>
    <item name="buttonStyle">@style/RobotoButtonStyle</item>
</style>

উল্লেখ্য buttonStyleধারণ করে না android:প্রিফিক্স কিন্তু textViewStyleএটা থাকা আবশ্যক।


4
কোথা sans-serif-lightথেকে মান পেলেন ? fontFamilyকোথাও বৈধ মানগুলির একটি তালিকা আছে? আমি ডক্সগুলি পাশাপাশি অ্যান্ড্রয়েড উত্সে থিম এবং স্টাইল ফাইলগুলি অনুসন্ধান করে দেখছি এবং কিছুই খুঁজে পাচ্ছি না।
ক্রিস্টোফার পেরি

34
এটি কেবলমাত্র API স্তরের 16 এর জন্যই সম্ভব .. নাম "অ্যান্ড্রয়েড: ফন্টফ্যামিলি" কেবল মাত্র 16 স্তরের বা তার উপরে রয়েছে .. উদাহরণস্বরূপ, এপিআই 14 এর জন্যও কি এটি করার কোনও উপায় আছে?
লরেঞ্জো বারবাগলি

3
@ লোরেঞ্জো বারবাগলি, আপনি ক্যালিগ্রাফি
ব্রাইস গাবিন

10
আচ্ছা আমার কাস্টম ফন্ট থাকলে আমি কী করব?
রোহিত তিগ্গা

2
হ্যাঁ, আমি পুরো অ্যাপটিতে কাস্টম ফন্টও যুক্ত করতে চাই। আমি এটা কিভাবে করবো ?. প্রথম উত্তরের পরামর্শ অনুযায়ী আমাকে কি টেক্সটভিউকে ওভাররাইড এবং সমস্ত পাঠ্য ভিউ প্রতিস্থাপন করতে হবে
জন

144

অ্যান্ড্রয়েড ওরিওর মুক্তির সাথে সাথে আপনি এই লক্ষ্যে পৌঁছাতে সমর্থন লাইব্রেরিটি ব্যবহার করতে পারেন।

  1. আপনার যদি সমর্থন লাইব্রেরি > = 26.0.0 থাকে তবে আপনার অ্যাপ্লিকেশন বিল্ড.আরডলে চেক করুন
  2. আপনার সংস্থান ফোল্ডারে " ফন্ট " ফোল্ডার যুক্ত করুন এবং সেখানে আপনার ফন্ট যুক্ত করুন
  3. আপনার অ্যাপ্লিকেশন প্রধান শৈলীতে আপনার ডিফল্ট ফন্ট পরিবার উল্লেখ করুন:

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
       <item name="android:fontFamily">@font/your_font</item>
       <item name="fontFamily">@font/your_font</item> <!-- target android sdk versions < 26 and > 14 if theme other than AppCompat -->
    </style>
    

পরীক্ষা করে দেখুন https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html আরো বিস্তারিত তথ্যের জন্য।


9
API 26+ টার্গেট করার সময়, এটি গ্রহণযোগ্য পদ্ধতি হওয়া উচিত। ব্যবহার করার সময় সাপোর্ট লাইব্রেরী , শুধু অপসারণ android:উপসর্গ
webo80

2
আপনি যদি কেবল পূর্বানুমুক্ত সংস্করণ ব্যবহার করেন তবে ঠিক আছে। কেবলমাত্র
উপসর্গযুক্ত

2
এটি ফন্টটি সর্বত্র সেট করে না ... উদাহরণস্বরূপ আপনার যদি স্টাইলগুলি থেকে উদ্ভূত হয় তবে Base.TextAppearance.AppCompatএটি সেখানে ব্যবহৃত হয় না।
আইএক্সএক্স

3
@ আইএক্সএক্স, কীভাবে এই স্টাইলগুলি ওভাররাইড করবেন?
Primož Kralj

2
এপিআই <26
কোডেলিক

37

আপনার অ্যাপ ফন্ট পরিবর্তন করতে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন:

  1. resডিরেক্টরি ভিতরে নতুন ডিরেক্টরি তৈরি করুন এবং কল করুন font
  2. ফন্ট ফোল্ডারের ভিতরে আপনার ফন্ট।
  3. ভিতরে res-> values-> styles.xmlভিতরে <resources>-> <style>আপনার ফন্ট যুক্ত করুন <item name="android:fontFamily">@font/font_name</item>

এখানে চিত্র বর্ণনা লিখুন

এখন আপনার সমস্ত অ্যাপ্লিকেশন পাঠ্য আপনি যে পরিমাণে যোগ করবেন সেই পরিমাণে থাকতে হবে।


8
কাস্টম ফন্টগুলি ব্যবহার করার সময় আমি কীভাবে নিয়মিত ফন্টের সাথে বোল্ড ফন্ট যুক্ত করতে পারি?
রাজবীর শিয়েনহ

এটি কেবলমাত্র এআইপি লেভেল 26 এবং তারপরের সাথে কাজ করে, 21 এবং নীচে এপিআই সম্পর্কে কী হবে?
জুলকরনাইন শাহ

34

নীচে আপডেট পড়ুন

নতুন ফন্ট এম্বেড করার ক্ষেত্রে আমার একই সমস্যা ছিল এবং অবশেষে এটি টেক্সটভিউ প্রসারিত করে টাইপফন্টের ভিতরে সেট করে কাজ করতে পেল।

public class YourTextView extends TextView {

    public YourTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    public YourTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public YourTextView(Context context) {
        super(context);
        init();
    }

    private void init() {
        Typeface tf = Typeface.createFromAsset(context.getAssets(),
            "fonts/helveticaneue.ttf");
        setTypeface(tf);
    }
}

আপনাকে টেক্সটভিউ উপাদানগুলি পরবর্তীতে প্রতিটি উপাদান থেকে পরিবর্তন করতে হবে। এবং আপনি যদি গ্রহের ক্ষেত্রে ইউআই-ক্রিয়েটার ব্যবহার করেন তবে কখনও কখনও সে টেক্সটভিউগুলি সঠিকভাবে প্রদর্শন করে না। আমার জন্য কাজ করা একমাত্র জিনিস ছিল ...

হালনাগাদ

আজকাল আমি টেক্সটভিউগুলি না বাড়িয়ে পুরো অ্যাপ্লিকেশনটিতে টাইপফেসগুলি পরিবর্তন করতে প্রতিবিম্বটি ব্যবহার করছি। এই এসও পোস্ট দেখুন

আপডেট 2

এআইপি লেভেল 26 দিয়ে শুরু করে এবং আপনি ব্যবহার করতে পারেন এমন 'সহায়তা লাইব্রেরি'-এ উপলব্ধ

android:fontFamily="@font/embeddedfont"

আরও তথ্য: এক্সএমএলে হরফ


25
এটি সমাধান নয়। আমি কেবল টেক্সটভিউ নয়, বিভিন্ন ধরণের ভিউ ব্যবহার করছি। আমি একবার ফন্ট সেট করতে এবং এটি ভুলে যেতে চাই। তদ্ব্যতীত, আপনার কোড প্রতিটি পাঠ্য ভিউয়ের জন্য নতুন অবজেক্ট তৈরি করে। সম্পদ থেকে একবারে ফন্ট লোড করার জন্য কমপক্ষে ক্ষেত্রটিকে স্থির হিসাবে ঘোষণা করুন।
টমরোজব

2
... ঠিক আছে, একটি সন্ধান এবং প্রতিস্থাপন ফাংশন আছে, যা এই ক্ষেত্রে সত্যিই ভাল কাজ করে
দীর্ঘ

1
এটি কাজ করে না। getContext()চলক স্থির থাকলে আপনি কল করতে পারবেন না । আপনার এটি সিঙ্গলটনের মতো প্রয়োগ করা উচিত, অন্যথায় বর্তমান কোডটিও সংকলন করবে না।
টমরোজব

1
আমি শেষ প্রতিশ্রুতি ফিরিয়ে দিয়েছি।
লম্বী

1
@ টমরোজব: ডি আমি কেবল বুঝতে পেরেছিলাম যে, আমি শেষ দ্রুত পরিবর্তনগুলি করেছি, কারণ এটি আপনার মন্তব্যের কারণে! আপনার পর্যাপ্ত পয়েন্ট রয়েছে বলে কোড কোডটি নিজেই অপ্টিমাইজ করতে আপনাকে স্বাগতম। অন্যথায় আমরা এখনও কয়েক বছরের মধ্যে এই বিষয় নিয়ে কথা বলব, যখন কেউ আর স্মার্টফোনের বিষয়ে চিন্তা করে না;)
দীর্ঘ

8

আপনার রেজ / মান / স্টাইলস.এক্সএমএলে এই লাইন কোডটি যুক্ত করুন

<item name="android:fontFamily">@font/circular_medium</item>

পুরো শৈলীটি দেখতে এটির মতো লাগবে

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:fontFamily">@font/circular_medium</item>
</style>

"বিজ্ঞপ্তি_মেডিয়াম" আপনার নিজের ফন্টের নামতে পরিবর্তন করুন ..


6

পারফরম্যান্স সম্পর্কে কথা বলবেন না, কাস্টম ফন্টের জন্য আপনার সমস্ত দর্শনগুলির মাধ্যমে একটি পুনরাবৃত্ত পদ্ধতির লুপ থাকতে পারে এবং যদি এটি কোনও টেক্সটভিউ থাকে তবে টাইপফেস সেট করুন:

public class Font {
    public static void setAllTextView(ViewGroup parent) {
        for (int i = parent.getChildCount() - 1; i >= 0; i--) {
            final View child = parent.getChildAt(i);
            if (child instanceof ViewGroup) {
                setAllTextView((ViewGroup) child);
            } else if (child instanceof TextView) {
                ((TextView) child).setTypeface(getFont());
            }
        }
    }

    public static Typeface getFont() {
        return Typeface.createFromAsset(YourApplicationContext.getInstance().getAssets(), "fonts/whateverfont.ttf");
    }
}

আপনার সমস্ত ক্রিয়াকলাপে সেট কনটেন্টভিউয়ের পরে এটির বর্তমান ভিউগ্রুপটি পাস করুন এবং এটি হয়ে গেছে:

ViewGroup group = (ViewGroup) getWindow().getDecorView().findViewById(android.R.id.content);
Font.setAllTextView(group);

খণ্ডের জন্য আপনি অনুরূপ কিছু করতে পারেন।


1
দুর্দান্ত লাগছে কিন্তু ভাবছেন কীভাবে এটিকে রিসাইক্লারভিউ সামগ্রীতে কাজ করা যায়?
শ্রুজান বড়াই

আমি এই চেষ্টা করেছি। রেন্ডার করতে খুব ভারী। recyclerViewনরকের মতো ধীর হয়ে যাচ্ছে ।
শ্রুজান বড়াই

সামগ্রিকভাবে কোনও তালিকা দর্শনের জন্য প্রস্তাবিত নয়, এই কৌশলটি স্থির দর্শন কোডের সময় সাশ্রয়ের জন্য।
অ্যালেন চান

5

পুরো অ্যাপ্লিকেশনটির জন্য এটি করার আরেকটি উপায় হ'ল এই উত্তরের উপর ভিত্তি করে প্রতিবিম্ব ব্যবহার করা

public class TypefaceUtil {
    /**
     * Using reflection to override default typefaces
     * NOTICE: DO NOT FORGET TO SET TYPEFACE FOR APP THEME AS DEFAULT TYPEFACE WHICH WILL BE
     * OVERRIDDEN
     *
     * @param typefaces map of fonts to replace
     */
    public static void overrideFonts(Map<String, Typeface> typefaces) {
        try {
            final Field field = Typeface.class.getDeclaredField("sSystemFontMap");
            field.setAccessible(true);
            Map<String, Typeface> oldFonts = (Map<String, Typeface>) field.get(null);
            if (oldFonts != null) {
                oldFonts.putAll(typefaces);
            } else {
                oldFonts = typefaces;
            }
            field.set(null, oldFonts);
            field.setAccessible(false);
        } catch (Exception e) {
            Log.e("TypefaceUtil", "Can not set custom fonts");
        }
    }

    public static Typeface getTypeface(int fontType, Context context) {
        // here you can load the Typeface from asset or use default ones
        switch (fontType) {
            case BOLD:
                return Typeface.create(SANS_SERIF, Typeface.BOLD);
            case ITALIC:
                return Typeface.create(SANS_SERIF, Typeface.ITALIC);
            case BOLD_ITALIC:
                return Typeface.create(SANS_SERIF, Typeface.BOLD_ITALIC);
            case LIGHT:
                return Typeface.create(SANS_SERIF_LIGHT, Typeface.NORMAL);
            case CONDENSED:
                return Typeface.create(SANS_SERIF_CONDENSED, Typeface.NORMAL);
            case THIN:
                return Typeface.create(SANS_SERIF_MEDIUM, Typeface.NORMAL);
            case MEDIUM:
                return Typeface.create(SANS_SERIF_THIN, Typeface.NORMAL);
            case REGULAR:
            default:
                return Typeface.create(SANS_SERIF, Typeface.NORMAL);
        }
    }
}

তারপরে আপনি যখনই ফন্টগুলি ওভাররাইড করতে চান আপনি কেবল পদ্ধতিটি কল করতে পারেন এবং এটিকে টাইপফেসের মানচিত্রটি নিম্নরূপ দিতে পারেন:

Typeface regular = TypefaceUtil.getTypeface(REGULAR, context);
Typeface light = TypefaceUtil.getTypeface(REGULAR, context);
Typeface condensed = TypefaceUtil.getTypeface(CONDENSED, context);
Typeface thin = TypefaceUtil.getTypeface(THIN, context);
Typeface medium = TypefaceUtil.getTypeface(MEDIUM, context);
Map<String, Typeface> fonts = new HashMap<>();
fonts.put("sans-serif", regular);
fonts.put("sans-serif-light", light);
fonts.put("sans-serif-condensed", condensed);
fonts.put("sans-serif-thin", thin);
fonts.put("sans-serif-medium", medium);
TypefaceUtil.overrideFonts(fonts);

সম্পূর্ণ উদাহরণ চেক জন্য

এটি কেবল পূর্ববর্তী সংস্করণগুলির জন্য অ্যান্ড্রয়েড এসডিকে 21 এবং তারপরে কাজ করে পুরো উদাহরণটি পরীক্ষা করে


5

আপনার গ্রেড ফাইলটিতে এই সংকলনটি কেবল সংকলন ব্যবহার করুন

complie'me.anwarshahriar:calligrapher:1.0'

এবং মূল ক্রিয়াকলাপে এটি অনক্রিট পদ্ধতিতে ব্যবহার করুন

Calligrapher calligrapher = new Calligrapher(this);
calligrapher.setFont(this, "yourCustomFontHere.ttf", true);

এটি করার জন্য এটি অত্যন্ত মার্জিত সুপার ফাস্ট উপায়।


2

এটি আমার প্রকল্পের উত্স, উত্স https://gist.github.com/artem-zinnatullin/7749076

সম্পদ ফোল্ডারের ভিতরে ফন্ট ডিরেক্টরি তৈরি করুন এবং তারপরে আপনার কাস্টম ফন্টটি ফন্ট ডিরেক্টরিতে অনুলিপি করুন, উদাহরণস্বরূপ আমি ট্রবুচেট.টিএফ ব্যবহার করছি;

টাইপফেসআটিল.জভা একটি ক্লাস তৈরি করুন;

import android.content.Context;
import android.graphics.Typeface;
import android.util.Log;

import java.lang.reflect.Field;
public class TypefaceUtil {

    public static void overrideFont(Context context, String defaultFontNameToOverride, String customFontFileNameInAssets) {
        try {
            final Typeface customFontTypeface = Typeface.createFromAsset(context.getAssets(), customFontFileNameInAssets);

            final Field defaultFontTypefaceField = Typeface.class.getDeclaredField(defaultFontNameToOverride);
            defaultFontTypefaceField.setAccessible(true);
            defaultFontTypefaceField.set(null, customFontTypeface);
        } catch (Exception e) {

        }
    }
}

শৈলীগুলিতে থিম সম্পাদনা করুন। XML নীচে যুক্ত করুন

<item name="android:typeface">serif</item>

আমার শৈলীর উদাহরণ। এক্সএমএল

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:typeface">serif</item><!-- Add here -->
    </style>


    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowActionBarOverlay">true</item>
        <item name="android:windowFullscreen">true</item>
    </style>
</resources>

অবশেষে, ক্রিয়াকলাপে বা টুকরো টুকরোতে অনক্রিট কল টাইপফেসআটিল.জাভা

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TypefaceUtil.overrideFont(getContext(), "SERIF", "fonts/trebuchet.ttf");
    }

0

অ্যান্ড্রয়েড পুরো অ্যাপ্লিকেশন জুড়ে ফন্ট প্রয়োগ করার জন্য সমর্থনের পথে তেমন সরবরাহ করে না (এই সমস্যাটি দেখুন )। পুরো অ্যাপ্লিকেশনটির জন্য ফন্ট সেট করার জন্য আপনার কাছে 4 টি বিকল্প রয়েছে:

  • অপশন 1: সিস্টেমের ফন্টটি পরিবর্তন করতে প্রতিবিম্ব প্রয়োগ করুন
  • অপশন 2: প্রতিটি ভিউয়ের জন্য কাস্টম ফন্টের প্রয়োজন জন্য কাস্টম দেখুন ক্লাস তৈরি এবং সাবক্লাস করুন
  • অপশন ৩: একটি ভিউ ক্রোলার প্রয়োগ করুন যা বর্তমান স্ক্রিনের জন্য ভিউ হায়ারার্কিকে অনুসরণ করে
  • বিকল্প 4: একটি তৃতীয় পক্ষের লাইব্রেরি ব্যবহার করুন।

এই বিকল্পগুলির বিশদটি এখানে পাওয়া যাবে


0

আমি জানি এই প্রশ্নটি বেশ পুরানো, তবে আমি একটি দুর্দান্ত সমাধান পেয়েছি। মূলত, আপনি এই ফাংশনে একটি ধারক বিন্যাসটি পাস করেন এবং এটি সমস্ত সমর্থিত দর্শনগুলিতে ফন্টটি প্রয়োগ করবে এবং শিশু বিন্যাসে পুনরাবৃত্তভাবে ছাঁটাই:

public static void setFont(ViewGroup layout)
{
    final int childcount = layout.getChildCount();
    for (int i = 0; i < childcount; i++)
    {
        // Get the view
        View v = layout.getChildAt(i);

        // Apply the font to a possible TextView
        try {
            ((TextView) v).setTypeface(MY_CUSTOM_FONT);
            continue;
        }
        catch (Exception e) { }

        // Apply the font to a possible EditText
        try {
            ((TextView) v).setTypeface(MY_CUSTOM_FONT);
            continue;
        }
        catch (Exception e) { }

        // Recursively cicle into a possible child layout
        try {
            ViewGroup vg = (ViewGroup) v;
            Utility.setFont(vg);
            continue;
        }
        catch (Exception e) { }
    }
}

0

করতে অ্যাপ্লিকেশনের নিছক সেট টাইপফেস করতে normal, sans, serifবা monospace(একটি স্বনির্বাচিত ফন্ট করুন!), আপনি এটা করতে পারেন।

একটি থিম সংজ্ঞায়িত করুন এবং android:typefaceআপনি যে টাইপফাইসটি ব্যবহার করতে চান তাতে বৈশিষ্ট্য সেট করুন styles.xml:

<resources>

    <!-- custom normal activity theme -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <!-- other elements -->
        <item name="android:typeface">monospace</item>
    </style>

</resources>

AndroidManifest.xmlফাইলটিতে পুরো অ্যাপটিতে থিমটি প্রয়োগ করুন:

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application
        android:theme="@style/AppTheme" >
    </application>
</manifest>

অ্যান্ড্রয়েড রেফারেন্স


আপনি কি নিশ্চিত যে কাজ করে? অ্যান্ড্রয়েড ডক অনুসারে: "নিম্নলিখিত ধ্রুবক মানগুলির মধ্যে একটি হতে হবে: সাধারণ, সানস, সেরিফ, মনোস্পেস"।
tomrozb

1
ওহ, আমি দেখতে পেয়েছি ... আপনি ঠিক বলেছেন ... আমি সর্বোপরি প্রশ্নটি বুঝতে পারি নি: x আমি কেবল আমার পুরো অ্যাপটি মনসস্পেস ফন্ট (কাস্টম নয়) ব্যবহার করতে চেয়েছিলাম এবং আমি এটি কাজ করে দেখেছি তাই আমি এটি পোস্ট করেছি এখানে ......... আমি মনে করি আমার উত্তর এখনও অন্যদের জন্য দরকারী হতে পারে যারা অনুরূপ কিছু করতে চায় .... সুতরাং আমি এটি সম্পাদনা করব এবং এটি এখানে রেখে দেব ..... আমি ঠিক আছি ভোট জমে। এটি নির্দেশ করার জন্য ধন্যবাদ
এরিক

আরে @ ডেভ ক্রুজ, এটি কি কেবল মনোস্পেসের জন্য কাজ করে? আমি এটি কেবল মনোস্পেসের জন্য পরীক্ষা করেছি ... এবং অন্য কিছুর .... তাই আমি নিশ্চিত নই ... তবে ডকুমেন্টেশন অনুসারে এটি "সাধারণ", "সানস" এবং "সেরিফ" এর জন্যও কাজ করা উচিত .. .i মনে করি টাইপফেস হরফ থেকে ফন্টের চেয়ে বেশি সাধারণ, তাই আমরা অ্যাপ্লিকেশনের ফন্টকে একটি নির্দিষ্ট ফন্টের মতো "কনসোলাস" বা কোনও কিছুর জন্য সেট করতে পারি না।
এরিক

@ এরিক হ্যাঁ আমারও কোন ধারণা নেই মনোস্পেসটি কবজির মতো কাজ করে তবে সাধারণ, সানস বা সেরিফের জন্য ভাগ্য নেই।
ডেভ ক্রুজ

0

এই লাইব্রেরিটি ব্যবহার করুন, এর হালকা ও কার্যকর এবং প্রয়োগ করা সহজ

https://github.com/sunnag7/FontStyler

<com.sunnag.fontstyler.FontStylerView
              android:textStyle="bold"
              android:text="@string/about_us"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:paddingTop="8dp"
              app:fontName="Lato-Bold"
              android:textSize="18sp"
              android:id="@+id/textView64" />

-7

উত্তর না, আপনি পারবেন না। দেখুন পুরো অ্যাপ্লিকেশনটির জন্য কাস্টম ফন্ট সেট করা সম্ভব? আরও তথ্যের জন্য.

সেখানে সমাধান নীচে উপস্থিত আছে, কিন্তু লাইনের কিছুই "কোড এখানে এবং আমার সমস্ত ফন্ট এক একক লাইন হতে হবে এই পরিবর্তে যে "।

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


41
আপনার ভাষ্য সম্পূর্ণরূপে একমত। বিশ্বব্যাপী একটি ফন্ট সেট করা অপ্রয়োজনীয় হওয়া উচিত, এমন কোনও জিনিস নয় যা প্রয়োজনীয় ধরণের কাজের প্রয়োজন হয়। এটি "কমিক সানস" অ্যাপ্লিকেশনগুলি এড়াতে বিশ্বের বিকাশকারী / ডিজাইনারদের উপর নির্ভর করে এটি প্রয়োগের জন্য গুগল / অ্যাপল নয়।
লোকালপিসিগুয়ে

4
ধারাবাহিকতা> অভিনব নকশা।
মার্টিন মার্কনকিনি

14
তবে দৃ .়তা <কার্যকারিতা। আমরা এমন অ্যাপ্লিকেশনগুলি বিকাশ করি যা বাইবেলের হিব্রু প্রদর্শন করে। অ্যান্ড্রয়েড ডিভাইসগুলিতে পাওয়া সমস্ত স্টক ফন্টগুলি (সর্বশেষে অ্যান্ড্রয়েড এল ফন্ট সহ) ক্যান্টিলিকেশন চিহ্নগুলি রেন্ডারিংয়ের (এবং তারা স্বরচিহ্নের উপরে স্বরচিহ্নগুলির মধ্যে একটি সাধারণ কাজ করে, যদিও তারা আরও ভাল হচ্ছে) একটি দুর্দান্ত কাজ করে। আমাদের অ্যাপ্লিকেশন জুড়ে আমাদের একেবারে একটি কাস্টম ফন্ট ব্যবহার করা দরকার এবং এটি ব্যবহার করে সমস্ত প্রয়োজনীয় ভিউ পেতে কেবল আমাদের প্রচুর কোড লিখতে হয়েছিল।
টেড হপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.