2013-07-03 3 views
5

मुझे पता है कि एक्शन बार में एक कस्टम फ़ॉन्ट कैसे सेट करें। मैं सिर्फ इस तरह SherlockFragmentActivity का विस्तार करने और setTitle ओवरराइड करने के लिए है:शेरलॉक के प्रासंगिक क्रिया पट्टी पर कस्टम फ़ॉन्ट कैसे सेट करें?

@Override 
public void setTitle(CharSequence title) { 
    String str = String.valueOf(title); 
    str = str.toUpperCase(Locale.getDefault()); 
    SpannableString s = new SpannableString(str); 
    MetricAffectingSpan span = new MetricAffectingSpan() { 
     @Override 
     public void updateMeasureState(TextPaint p) { 
      p.setTypeface(FontManager.INSTANCE.getAppFont()); 
     } 

     @Override 
     public void updateDrawState(TextPaint tp) { 
      tp.setTypeface(FontManager.INSTANCE.getAppFont()); 
     } 
    }; 

    s.setSpan(span, 0, s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

    getSupportActionBar().setTitle(s); 
} 

हालांकि, चीजों को एक प्रासंगिक कार्रवाई पट्टी के साथ जटिल हो। पुस्तकालय, प्रासंगिक कार्रवाई बार वापस जाने के लिए इस तरह एक कारखाने का उपयोग करता है:

ActionMode mode = getSherlockActivity().startActionMode(mActionModeCallback); 
mode.setTitle("whatever"); 

मैं ActionMode रद्द कर सकते थे, फिर भी lib यह नहीं लौटेगा।

कोई विचार?

उत्तर

4

मैं देख रहा हूँ एक छोटा सा जटिल है ...

आप एक View बनाने के लिए जहाँ आप शीर्षक के रूप में अपने TextView स्थापित करेंगे, तो आप इस TextView के लिए चाहते हैं फ़ॉन्ट सेट setCustomView का उपयोग जगह की आवश्यकता होगी, और अपने नए फ़ॉन्ट के साथ देखें।

मुझे आशा है कि यह आपकी मदद करेगी।

public void setActionModeTitle(CharSequence title) { 
    String str = String.valueOf(title); 
    str = str.toUpperCase(Locale.getDefault()); 
    SpannableString s = new SpannableString(str); 
    MetricAffectingSpan span = new MetricAffectingSpan() { 
     @Override 
     public void updateMeasureState(TextPaint p) { 
      p.setTypeface(FontManager.INSTANCE.getAppFont()); 
     } 

     @Override 
     public void updateDrawState(TextPaint tp) { 
      tp.setTypeface(FontManager.INSTANCE.getAppFont()); 
     } 
    }; 

    s.setSpan(span, 0, s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

    actionMode.setTitle(s); 
} 
+0

वहाँ केवल शीर्षक के लिए इस्तेमाल किया TextView बदलने के लिए एक तरीका है:

अद्यतन

आप इस तरह, अपने स्वयं के विधि बनाने की कोशिश की? –

+0

आपके लिए एक अद्यतन। –

+0

संपादित 2 काम किया! मैंने पहले कोशिश की थी, इसका कोई फायदा नहीं हुआ। यह सब के बाद काफी सरल था। धन्यवाद! –

0
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" 
    android:padding="@dimen/padding_very_small" 
    android:weightSum="2" > 

    <TextView 
     android:id="@+id/uRecomendTitleText" 
     style="@style/TitleStyle" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="0.5" 
     android:drawableLeft="@drawable/left_arrow" 
     android:text="@string/recommendation" 
     android:visibility="visible" /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1.5" 
     android:orientation="horizontal" > 

     <TextView 
      style="@style/TitleStyle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical|right" 
      android:gravity="center" 
      android:paddingRight="@dimen/padding_very_small" 
      android:text="@string/rank" /> 

     <TextView 
      android:id="@+id/uRecomendCount" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical|right" 
      android:background="@drawable/rounded_box" 
      android:gravity="center" /> 
    </LinearLayout> 

</LinearLayout> 
0
TextView txt=(TextView)findViewById(R.id.uRecomendTitleText); 
    Typeface AshtonsHand; 
     AshtonsHand = Typeface.createFromAsset(this.getAssets(), 
       IConstants.font); 
    txt.setTypeface(AshtonsHand); 
    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 

    getSupportActionBar().setBackgroundDrawable(
      getResources().getDrawable(R.drawable.top_bg_back)); 

    // getSupportActionBar().setDisplayUseLogoEnabled(false); 
    // getSupportActionBar().setDisplayShowTitleEnabled(true); 
    // getSupportActionBar().setDisplayShowHomeEnabled(false); 
    // getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setCustomView(R.layout.friends_list_actionbar); 
संबंधित मुद्दे