2015-06-17 62 views
8

我有摺疊式工具,在擴展狀態下我想要的文字下一個模糊的影子出現問題,我用這個代碼:摺疊式工具與textShadow

collapsingToolbar.setExpandedTitleTextAppearance(R.style.toolbar_text); 

有:

<style name="toolbar_text"> 
    <item name="android:textColor">@color/white</item> 
    <item name="android:shadowColor">@color/black</item> 
    <item name="android:shadowDx">2</item> 
    <item name="android:shadowDy">2</item> 
    <item name="android:shadowRadius">4</item> 
</style> 

我可以更改textColor,它的工作原理,但陰影不起作用。我爲陰影嘗試了許多不同的價值。

是否可以對摺疊文本投下陰影?因爲在淺色圖像上標題有時難以閱讀。

+0

你解決這個問題? –

+0

不,它與Google appcompat lib有關。也許等待更新。 – neoteknic

+0

現在已經修復。 – Twometer

回答

1

看起來像,設計支持庫版本22.2.1,這是不可能的。

下面是設置文本外觀去編譯方法:

void setExpandedTextAppearance(int resId) { 
    TypedArray a = this.mView.getContext().obtainStyledAttributes(resId, styleable.TextAppearance); 
    if(a.hasValue(styleable.TextAppearance_android_textColor)) { 
     this.mExpandedTextColor = a.getColor(styleable.TextAppearance_android_textColor, 0); 
    } 

    if(a.hasValue(styleable.TextAppearance_android_textSize)) { 
     this.mExpandedTextSize = (float)a.getDimensionPixelSize(styleable.TextAppearance_android_textSize, 0); 
    } 

    a.recycle(); 
    this.recalculate(); 
} 

而且它僅設置文字的顏色和大小。

更新:由於您提到您需要爲標題添加陰影以使它更易於在淺色背景上閱讀,因此我建議您將展開的標題顏色更改爲深色。例如。

collapsingToolbar.setExpandedTitleColor(0x000); 
0

我已經通過以下代碼獲得了文字陰影。我在ImageView的位置使用了FrameLayout,而FrameLayout使用了ImageView和帶背景漸變的View。

  •  <ImageView 
          android:id="@+id/groupIcon" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent" 
          android:fitsSystemWindows="true" 
          android:scaleType="centerCrop" 
          android:src="@drawable/drawer_header_background" 
          app:layout_collapseMode="parallax" /> 
    
         <View 
          android:layout_width="match_parent" 
          android:layout_height="match_parent" 
          android:background="@drawable/coll_toolbar_image_gradient" /> 
        </FrameLayout> 
    

coll_toolbar_image_gradient.xml

<gradient 
    android:angle="90" 
    android:centerColor="#00ffffff" 
    android:endColor="#aa000000" 
    android:startColor="#aa000000" /> 
<corners android:radius="0dp" />