android CollapsingToolbarLayout टाइपफ़ेस और आकार को कैसे बदलें?




fonts font-size (7)

फ़ॉन्ट आकार या अभिभावक बदलें।

<style name="expandedappbar" parent="@android:style/TextAppearance.Medium"> //Change Medium to Small
    <item name="android:textSize">28sp</item>  <!--Or Change the font size -->
    <item name="android:textColor">@color/white</item>
    <item name="android:textStyle">bold</item>
</style>

<style name="collapsedappbar" parent="@android:style/TextAppearance.Medium">
    <item name="android:textSize">18sp</item>
    <item name="android:textColor">@color/white</item>
</style>

मैं CollapsingToolbarLayout फ़ॉन्ट आकार और इसके टाइपफेस को बदलना चाहता हूं। मैं इसे कैसे प्राप्त कर सकता हूं?


आप नए सार्वजनिक तरीकों का उपयोग कर सकते हैं, CollapsingToolbarLayout पर संक्षिप्त और विस्तारित शीर्षक के लिए टाइपफ़ेस सेट करने के लिए, जैसे:

final Typeface tf = Typeface.createFromAsset(context.getAssets(), "fonts/FrutigerLTStd-Light.otf");
collapsingToolbar.setCollapsedTitleTypeface(tf);
collapsingToolbar.setExpandedTitleTypeface(tf);

ऐसा लगता है कि डिजाइन समर्थन पुस्तकालय 23.1.0 में जोड़ा गया है, और यह एक बहुत ही स्वागत है।


यहां सभी उत्तरों को जोड़ने के लिए, यह मेरे लिए एक्सएमएल में काम नहीं करता है, चाहे मैं आवेदन करने की कोशिश करता हूं, ऐपथीम में, शैलियों में संदर्भित करता हूं। मैं वर्तमान में समर्थन पुस्तकालय 27.1.1 का उपयोग कर रहा हूँ

यह केवल प्रोग्रामिक रूप से काम किया।

Typeface typeface = ResourcesCompat.getFont(this, R.font.my_custom_font);
collapsingToolbarLayout.setCollapsedTitleTypeface(typeface);
collapsingToolbarLayout.setExpandedTitleTypeface(typeface);

असल में आप अपने एक्सएमएल में TextAppearance सेट कर सकते हैं।

<android.support.design.widget.AppBarLayout
        android:id="@+id/appbarlyout_commonview_header"
        android:layout_width="match_parent"
        android:layout_height="@dimen/appbarlayout_height"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapse_commonview_header"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginStart="72dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:expandedTitleTextAppearance="@style/TextAppearance.AppCompat.Title">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                android:scaleType="centerCrop" />

            <android.support.v7.widget.Toolbar
                android:id="@+id/tlbr_commonview_mainmenu"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin" />

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

उपरोक्त कोड से आपने यह हिस्सा देखा है

app:expandedTitleTextAppearance="@style/TextAppearance.AppCompat.Title"

विशेष रूप से अंतिम भाग

.Title

यदि आपको याद है, तो यह टाइफोग्राफी अनुभाग में सामग्री डिजाइन चश्मा में प्रलेखित है। आप इसे उपलब्ध अंतर्निहित टेक्स्ट ऐपपेरेंस शैली में बदल सकते हैं।

दूसरा चरण Roboto Font का उपयोग करना है जिसे Google ने अनुशंसित किया था। TextAppearance में इस फ़ॉन्ट को शामिल नहीं किया गया है, इसलिए हमें इसे मैन्युअल रूप से जोड़ने की आवश्यकता है, सौभाग्य से एक ग्रैडल बेस रोबोट फ़ॉन्ट है जो टाइपर द्वारा प्रदान की जाती है। फ़ॉन्ट का उपयोग करने से पहले हमें अपने build.gradle में एक नई निर्भरता जोड़ने की आवश्यकता है।

dependencies {
    compile 'com.elmargomez.typer:typerlib:1.0.0'
}

और टाइपफेस को हमारे CollapsingToolbar में सेट करें

Typeface font = Typer.set(yourContext).getFont(Font.ROBOTO_MEDIUM);
collapsingToolbar.setCollapsedTitleTypeface(font);
collapsingToolbar.setExpandedTitleTypeface(font);

आप ऐसा कुछ कर सकते हैं:

mCollapsingToolbarLayout.setTitle(getTitle());
mCollapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.ExpandedAppBar);
mCollapsingToolbarLayout.setCollapsedTitleTextAppearance(R.style.CollapsedAppBar);

अनुरूप पाठदृश्य शैली हो सकती है: 28sp # 000 बोल्ड

<style name="CollapsedAppBar" parent="@android:style/TextAppearance.Medium">
    <item name="android:textSize">24sp</item>
    <item name="android:textColor">@color/white</item>
    <item name="android:textStyle">normal</item>
</style>

संदर्भ के लिए here भी देखें।


कोड यहाँ है

 <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsingToolbarLayout"
            android:layout_width="match_parent"
            app:expandedTitleTextAppearance="@style/Toolbar.TitleText"
            app:collapsedTitleTextAppearance="@style/Toolbar.TitleText"
            android:layout_height="match_parent"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginStart="@dimen/expanded_toolbar_title_margin_start"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

CollapsingToolbarLayout लेआउट में इन कोड लाइनों को जोड़ें

 app:expandedTitleTextAppearance="@style/Toolbar.TitleText"
 app:collapsedTitleTextAppearance="@style/Toolbar.TitleText"

और कोड जो नीचे दिया गया है, style.xml में

<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:textSize">16sp</item>
</style>

ऐसा लगता है कि मेरे पास समाधान है:

private void makeCollapsingToolbarLayoutLooksGood(CollapsingToolbarLayout collapsingToolbarLayout) {
    try {
        final Field field = collapsingToolbarLayout.getClass().getDeclaredField("mCollapsingTextHelper");
        field.setAccessible(true);

        final Object object = field.get(collapsingToolbarLayout);
        final Field tpf = object.getClass().getDeclaredField("mTextPaint");
        tpf.setAccessible(true);

        ((TextPaint) tpf.get(object)).setTypeface(Typeface.createFromAsset(getAssets(), "Roboto-Bold.ttf"));
        ((TextPaint) tpf.get(object)).setColor(getResources().getColor(R.color.ice));
    } catch (Exception ignored) {
    }
}




android-collapsingtoolbarlayout