Come fare un ActionBar come Google Play che sfuma in durante lo scorrimento

? Cristiana214 @ | Original: StackOverFlow
---

Come fare ActionBar trasparente o traslucido come Google Play che sfuma dentro o fuori quando si scorre con windowActionBarOverlay ? Ho anche letto questo articolo di https://developer.android.com/training/basics/actionbar/overlaying.html

Controllare i seguenti screenshot

http://i.stack.imgur.com/vKaw3.png

Ho provato anche questo http://stackoverflow.com/questions/6749261/custom-translucent-android-actionbar ma non funziona ...

---

Top 5 Risposta

1Tpec1j @

Si prega di leggere questo articolo : http://cyrilmottier.com/2013/05/24/pushing-the-actionbar-to-the-next-level/

Vi si possono trovare ad esempio e tutorial su vostro questuion

2CommandSpace @

Il seguente è il codice che ho usato in app sto lavorando

Si dovrà utilizzare la funzione OnScrollChanged nel vostro ScrollView . ActionBar Non consentono di impostare l'opacità, in modo da impostare un disegnabile sfondo sul ActionBar ed è possibile modificare l'opacità in base alla quantità di scorrimento nella ScrollView . Vi ho dato un esempio di flusso

I set di funzione dà la alpha appropriato per il locationImage vista basata sulla sua finestra di posizione WRT .

this.getScrollY() Ti dà quanto il scrollView scorse

public void OnScrollChanged(int l, int t, int oldl, int oldt) {
    // Code ...
    locationImage.setAlpha(getAlphaForView(locationImageInitialLocation- this.getScrollY()));
}


private float getAlphaForView(int position) {
    int diff = 0;
    float minAlpha = 0.4f, maxAlpha = 1.f;
    float alpha = minAlpha; // min alpha
    if (position > screenHeight)
        alpha = minAlpha;
    else if (position + locationImageHeight < screenHeight)
        alpha = maxAlpha;
    else {
        diff = screenHeight - position;
        alpha += ((diff * 1f) / locationImageHeight)* (maxAlpha - minAlpha); // 1f and 0.4f are maximum and min
                                            // alpha
        // this will return a number betn 0f and 0.6f
    }
    // System.out.println(alpha+" "+screenHeight +" "+locationImageInitialLocation+" "+position+" "+diff);
    return alpha;
}

EDIT : ho aggiunto un esempio del campione che lavora a https://github.com/ramanadv/fadingActionBar, potete dare un'occhiata a questo.

Come fare un ActionBar come Google Play che sfuma in durante lo scorrimento

3Cristiana214 @

https://developer.android.com/training/basics/actionbar/overlaying.html

Come fare un ActionBar come Google Play che sfuma in durante lo scorrimento

bar azione in modalità overlay .

Attiva modalità Overlay

To Attiva modalità Overlay for the action bar, you need to create a custom theme that extends an existing action bar theme and set the android:windowActionBarOverlay property to true.

Per Android 3.0 e superiori solo

Se il minSdkVersion è impostato a 11 o superiore, il vostro tema personalizzato dovrebbe usare Theme.Holo tema ( o uno dei suoi discendenti ) come tema principale . Per esempio:

<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme"
           parent="@android:style/Theme.Holo">
        <item name="android:windowActionBarOverlay">true</item>
    </style>
</resources>

Per Android 2.1 e superiori

Se la tua applicazione utilizza la libreria di supporto per la compatibilità su dispositivi versioni inferiori Android 3.0 in esecuzione, il vostro tema personalizzato deve utilizzare Theme.AppCompat tema ( o uno dei suoi discendenti ) come tema principale . Per esempio:

<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme"
           parent="@android:style/Theme.AppCompat">
        <item name="android:windowActionBarOverlay">true</item>

        <!-- Support library compatibility -->
        <item name="windowActionBarOverlay">true</item>
    </style>
</resources>

Specificare layout Top -margin

Quando la barra delle azioni è in modalità di sovrapposizione, potrebbe oscurare alcuni dei layout che deve rimanere visibile . Per garantire che tali voci rimangono al di sotto della barra di azione in ogni momento, aggiungere o margine o padding alla parte superiore della vista ( s ) con l'altezza specificata da actionBarSize . Per esempio:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="?android:attr/actionBarSize">
    ...
</RelativeLayout>
4shaobin0604 @

Si prega di verificare questa biblioteca https://github.com/ManuelPeinado/FadingActionBar che implementa il fresco effetto bar azione dissolvenza desiderata

5SmallSani @

On webView:

@JavascriptInterface
public void showToolbar(String scrollY, String imgWidth) {
    int int_scrollY = Integer.valueOf(scrollY);
    int int_imgWidth = Integer.valueOf(imgWidth);

    String clr;
    if (int_scrollY<=int_imgWidth-actionBarHeight) {
        clr = Integer.toHexString(int_scrollY * 255 / (int_imgWidth-actionBarHeight));
    }else{
        clr = Integer.toHexString(255);
    }

    toolbar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#"+clr+"9CCC65")));
}
Come fare un ActionBar come Google Play che sfuma in durante lo scorrimento