2016-11-16 84 views
-2

Android的頭銜,我需要在標題中添加像彩虹效果

this圖像的彩虹效果。

任何想法?

我發現TextView的一些答案,但沒有爲標題從工具欄

+0

可以使用貼在這裏的建議https://chiuki.github.io/advanced-android-textview/#/ 38創建自定義的RainbowSpan,然後使用SpannableString作爲標題。 –

+0

thx,我用你的意見與Arsen Sench的答案組合,它的工作原理 –

回答

0
public static TextView getToolbarTitleView(ActionBarActivity activity, Toolbar toolbar){ 
    ActionBar actionBar = activity.getSupportActionBar(); 
    CharSequence actionbarTitle = null; 
    if(actionBar != null) 
     actionbarTitle = actionBar.getTitle(); 
    actionbarTitle = TextUtils.isEmpty(actionbarTitle) ? toolbar.getTitle() : actionbarTitle; 
    if(TextUtils.isEmpty(actionbarTitle)) return null; 
    // can't find if title not set 
    for(int i= 0; i < toolbar.getChildCount(); i++){ 
     View v = toolbar.getChildAt(i); 
     if(v != null && v instanceof TextView){ 
      TextView t = (TextView) v; 
      CharSequence title = t.getText(); 
      if(!TextUtils.isEmpty(title) && actionbarTitle.equals(title) && t.getId() == View.NO_ID){ 
       //Toolbar does not assign id to views with layout params SYSTEM, hence getId() == View.NO_ID 
       //in same manner subtitle TextView can be obtained. 
       return t; 
      } 
     } 
    } 
    return null; 
} 



TextView tv= getToolBarTitleView(activity,toolbar); 
if(tv!=null){ 
    Shader textShader=new LinearGradient(0, 0, 0, 20, 
    new int[]{Color.YOURCOLOR,Color.YOURCOLOR}, 
    new float[]{0, 1}, TileMode.CLAMP); 
    tv.getPaint().setShader(textShader); 
} 
else{ 
    Log.e("MYPROJECT","No textview in toolbar . . . "); 
} 
+0

thx,我用你的getToolbarTitleView()結合第一條評論的github鏈接,它的工作:) –

+0

高興地幫助你:) –