2013-07-03 20 views
5

Eylem çubuğuna özel yazı tipi nasıl yazılacağını biliyorum. Sadece bu gibi SetTitle SherlockFragmentActivity genişletmek ve geçersiz kılmak vardır: Sherlock'un bağlamsal eylem çubuğuna özel yazı tipi nasıl ayarlanır?

@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); 
} 

Ancak işler bağlamsal işlem çubuğuyla karışıktır. kütüphane, bunun gibi bağlamsal Eylem çubuğunu dönmek için bir fabrika kullanır: Ben ActionMode geçersiz OLABİLECEK, henüz lib bunu döndürmez

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

.

Herhangi bir fikrin var mı? Ben biraz karmaşıktır bkz

cevap

4

...

Sen bu TextView için istediğiniz yazı tipini, başlık olarak TextView yerleştirmek set nerede bir View oluşturmak gerekir ve yerleştirmek için setCustomView kullanacak senin yeni yazı tipi ile görüntüleyin.

Umarım size yardımcı olur. başlık için kullanılan tek TextView değiştirmek için bir yol

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

vardır:

GÜNCELLEME

böyle kendi yöntemini oluşturmak denediniz mi? –

+0

Sizin için bir güncelleme. –

+0

Düzenle 2 çalıştı! Bunu daha önce denedim, boşuna. Sonuçta oldukça basitti. Teşekkürler! –

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); 
İlgili konular