8

ツールバーの折りたたみに問題があります。展開された状態で、テキストの下にぼやけた影が必要な場合は、次のコードを使用します。

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、機能しますが、影が機能しません。私はシャドウに対して多くの異なる値を試しました。

折りたたまれたテキストに影を付けることはできますか? 画像が明るいため、タイトルが読みにくい場合があります。

4

3 に答える 3

5

テキストシャドウを使用する代わりに、テキスト保護スクリムを使用してください。この質問を参照してください: Android CollapsingToolbarLayout タイトルの背景

于 2015-09-01T17:58:48.430 に答える
1

設計サポート lib version22.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);
于 2015-08-17T14:30:29.247 に答える
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" />

于 2015-09-28T09:37:28.450 に答える